Seite 1 von 2

MQTT mit Shelly 1

Verfasst: 25. Jul 2019 09:55
von Backbe01
Hallo,

seit über eine Woche versuche ich einen Shelly 1 in mein OH2 einzubinden. Habe viele Videos angesehen und nochmehr Beiträge hier und in anderen Foren gelesen. Irgendwie finde ich aber immer leicht abweichende Konfigurationen. Ich habe viele getestet, konnte aber leider noch keinen Erfolg verbuchen.

Es läuft die OH2.4 auf einem raspberry und mosquitto, ebenfalls auf dem raspberry. Ich möchte die Bridge und den Shelly mittels der .things Datei einbinden. Die Steuerung des Shelly 1 funktioniert problemlos mittels mqtt.fx. Ich sehe dort in shellies/shelly1-E09579/relay/0 das schalten von "on" und "off".

Leider klappt das nicht in OH hab. Es wäre wirklich super, wenn sich jemand mal meine Dateien ansehen könnte:

mqtt.things

Code: Alles auswählen

Bridge mqtt:broker:Mosquitto "Mosquitto MQTT Broker" @ "MQTT" [ host="192.168.178.79", secure=false ] {
    Thing topic Shottimer "Shottimer" {
        Channels:
        //Shottimer
        Type switch : Shottimer "Shottimer" [stateTopic="shellies/shelly1-E09579/relay/0", on="ON", off="OFF", commandTopic="shellies/shelly1-E09579/relay/0/command", on="ON", off="OFF"]
    }
}
auszug zuhause.items

Code: Alles auswählen

/* MQTT */
Switch          Shottimer    "Shottimer"       {channel="mqtt:topic:Mosquitto:Shottimer:Shottimer"}
auszug zuhause.sitemap

Code: Alles auswählen

Frame label="Espresso" {
        Switch item=Shottimer icon="flow" label="Bezug"
    }
Danke und viele Grüße
Gerhard

Re: MQTT mit Shelly 1

Verfasst: 25. Jul 2019 14:09
von udo1toni
mach bitte mal das doppelte on="ON", off="OFF" weg und ersetze das andere durch on="on", off="off"

Auch wenn Du über .things Dateien konfigurierst, tauchen die konfigurierten Things in Paper UI auf (read only), Du kannst Dort also jederzeit nachschauen, ob Deine Konfiguration korrekt im Thing angekommen ist. Ebenso solltest Du dort sehen können, ob die Bridge ONLINE ist.

Weiter kannst Du in event.log nachschauen, ob dort überhaupt Nachrichten vom Broker ankommen.
Falls Du mit openHABian installiert hast, hast Du frontail zur Verfügung, um bequem auf die logs zuzugreifen.

Re: MQTT mit Shelly 1

Verfasst: 25. Jul 2019 20:42
von Backbe01
Hallo Udo,

wirklich beeindruckend!!! Vielen Dank, jetzt geht´s!

Kleine Ursache, große Wirkung...

VG
Gerhard

Re: MQTT mit Shelly 1

Verfasst: 7. Aug 2019 20:43
von bastier
puhhh ich hab selbes verhalten. bekomme es aber nicht weg.
Ich habe bereits 16 Shelly 2.5 in betrieb und auf gleiche Art und Weise definiert.

thing:

Code: Alles auswählen

Thing mqtt:topic:shelly1-944596 "Licht Terasse Wand" (mqtt:broker:mosquitto) {
    Channels:
        Type switch : power "Power" [commandTopic="shellies/shelly1-944596/relay/0/command", on="on", off="off", stateTopic="shellies/shelly1-944596/relay/0", on="on", off="off"]
}
item:

Code: Alles auswählen

Switch TerasseWandleuchte "Terassen Wandleuchte" {channel="mqtt:topic:mosquitto:shelly1-944596:power"}
sitemap:

Code: Alles auswählen

Text label="Außen" icon="vacation" {
                            Frame label="Außenbeleuchtung" {
                                Switch item=TerasseWandleuchte icon="outdoorlight"
                            }
                        }
Wenn ich den Shelly in der BasicUI schalte kommt folgende Meldung im Log.

Code: Alles auswählen

2019-08-07 20:41:44.840 [ome.event.ItemCommandEvent] - Item 'TerasseWandleuchte' received command ON
2019-08-07 20:41:44.850 [nt.ItemStatePredictedEvent] - TerasseWandleuchte predicted to become NULL
2019-08-07 20:41:45.507 [ome.event.ItemCommandEvent] - Item 'TerasseWandleuchte' received command OFF
2019-08-07 20:41:45.517 [nt.ItemStatePredictedEvent] - TerasseWandleuchte predicted to become NULL
Ich checks nicht. Habe schon die on, off Definitionen in groß, klein, weggelassen etc, alles ausprobiert. Keine Änderung.

Kann ich noch mal Hilfestellung bekommen? =D

Re: MQTT mit Shelly 1

Verfasst: 8. Aug 2019 16:52
von udo1toni
Wie schon erwähnt, es sollte nur ein on="on", off="off" da stehen. Ich bin mir nicht sicher, ob es eine Rolle spielt, an welcher Stelle die einzelnen Parameter innerhalb der Liste definiert werden (eigentlich sollte es egal sein).

Siehst Du denn im Broker etwas? Es gibt verschiedene mqtt sniffer, z.B. mqtt-spy oder mqtt.fx, es gibt auch welche, die auf dem Handy laufen. Du verbindest den sniffer einfach mit dem Broker und kannst genauso die Topics abbonieren. Ebenso kannst Du ein Topic publizieren um z.B. einen Schaltbefehl zu senden.

Re: MQTT mit Shelly 1

Verfasst: 9. Aug 2019 09:06
von bastier
Beim Schalten über OH kommt im MQTT.fx nichts an.
Jedoch über das webGUI oder über die Shellyapp sehe ich die eingehenden Topics. MQTT als Prozess funktioniert soweit.
es sollte nur ein on="on", off="off"
Ja, habe jede Variante versucht. Doppelt, einfach, Groß-/Kleinschreibung - Hat nicht geklappt.

Den Pi habe ich auch mehrfach neu gestartet.

Ich versuche jetzt noch mal das Thing über PaperUI anzulegen.

Re: MQTT mit Shelly 1

Verfasst: 9. Aug 2019 12:33
von Heavy-Dee
Ich habe mein Shelly1 in OH2.4 wie folgt eingebunden.

Thing:

Code: Alles auswählen

Bridge mqtt:broker:embedded-mqtt-broker "MQTT Bridge"
[
    host="192.168.xxx.xxx",   
    port="1883",
    secure=false,
    username="xxxxx",
    password="xxxxx"

]

{
    // Deckenbeleuchtung
    Thing topic Shelly1_259ED4 "Beleuchtung " @ "Küche" 
    {
        Channels:
        Type switch : ch1    "Deckenleuchte (Küche)"
        [
            stateTopic="stat/Shelly1_259ED4/POWER", commandTopic="cmnd/Shelly1_259ED4/POWER"
        ] 
    }
   }
Item:

Code: Alles auswählen

    // Deckenleuchte
    Switch    Shelly1_259ED4        "Deckenleuchte"     <light>     (grpHomeNet,grpEG,grpKueche,grpLicht,grpLichtKueche)
        ["Switchable"]  {channel="mqtt:topic:embedded-mqtt-broker:Shelly1_259ED4:ch1"}
Sitemap:

Code: Alles auswählen

    Frame   label="Küche"
    {
        // Deckenbeleuchtung
        Switch item=Shelly1_259ED4          label="Decke [MAP(de.map):%s]"                                              icon="wallswitch"
    } 
Bei mir funktioniert das wunderbar.
Probiers einfach mal aus.
Feedback erwünscht. :!:

Re: MQTT mit Shelly 1

Verfasst: 10. Aug 2019 07:56
von bastier
Ach ich Idiot.
Manchmal sieht man den Wald vor lauter Bäumen nicht.


hier liegt der Fehler:

Switch TerasseWandleuchte "Terassen Wandleuchte" {channel="mqtt:topic:mosquitto:shelly1-944596:power"}

So funktionierts:

Code: Alles auswählen

Switch TerasseWandleuchte "Terassen Wandleuchte" {channel="mqtt:topic:shelly1-944596:power"}
:D ich danke euch trotzdem! :lol:

Re: MQTT mit Shelly 1

Verfasst: 1. Sep 2019 23:15
von Fahren
Hallo zusammen,

ich habe mich jetzt einfach mal hier eingeklingt weil es passt. Will jetzt auch anfangen meine Shellys und Sonoffs in das neue MQTT einfügen.
Aber wie sagt man so schön... sehe wahrscheinlich den Wald vor lauter Bäumen nicht. Der interne MQTT Broker ist installiert und läuft, zwei Generic Things sind über PaperUi erstellt. Aber ich möchte wie bei den anderen Sachen auch über VStudio die Text Dateien füllen. Dazu habe ich zwei Fragen...
Also ich erstelle eine MQTT.thing Datei, besser gesagt ich fülle sie mit den Daten (habe als Beispiel mal diese aus dem Thread genommen)
MQTT.things....
Bridge mqtt:broker:embedded-mqtt-broker "MQTT Bridge"
[
host="192.168.xxx.xxx",
port="1883",
secure=false,
username="xxxxx",
password="xxxxx"

]

{
// Licht Büro
Thing topic Shelly1_XXX "Beleuchtung " @ "Büro"
{
Channels:
Type switch : ch1 "Deckenleuchte (Büro)"
[
stateTopic="stat/Shelly1_XXX/POWER", commandTopic="cmnd/Shelly1_XXXX/POWER"
]
// Licht Kueche
Thing topic Shelly2_XXX "Beleuchtung " @ "Küche"
{
Channels:
Type switch : ch1 "Deckenleuchte (Küche)"
[
stateTopic="stat/Shelly1_XXX/POWER", commandTopic="cmnd/Shelly1_XXX/POWER"
]
}
}
....und Liste darin die ganzen Shellys als Thing, mit den Channels auf. Und logischerweise in der Items Datei dazu die Items. Wenn ich es besser sortieren will ,kann ich ne Datei Shelly.things, Sonoff.things, etc.things anlegen??
Wenn ja muss ich die Brigde Angaben oben immer wiederholen im Text.

Vor kurzem wurde hier auch erwähnt es soll bald ne OpenHab 3 Version geben, ist es dann weiterhin möglich mit den Text Dateien und VStudio zu arbeiten? Danke für Eure Mühe und Zeit.

Re: MQTT mit Shelly 1

Verfasst: 2. Sep 2019 05:11
von udo1toni
Ich bin ja immer etwas pingelig :) was Namen angeht...
  1. Das Ding heißt VSCode, das hat nichts mit Visual Studio zu tun!
  2. Die Dateiendung ist .things (Mehrzahl, weil innerhalb einer Datei mehrere angelegt werden können - im Gegensatz zu .sitemap, da ist nur eine in der Datei)
  3. Code (und Konfigurationen, Log-Meldungen...) bitte immer als Code posten, nicht als Zitat.
  4. Einrückungen sind zwar optional, erhöhen aber die Übersichtlichkeit enorm
So, wie Du es eingegeben hast, musst Du alle zu mqtt gehörenden Things in einer Datei anlegen, weil sie als Teil der Bridge konfiguriert werden. Es gibt eine alternative Schreibweise, mit der die Bridge unabhängig von den Things definiert wird, damit kannst Du Things einer Bridge zuordnen, ohne sie gemeinsam mit der Bridge zu konfigurieren. Der Preis ist, dass Du bei jedem Thing aufs Neue die Bridge angeben musst. Ob die Auflistung in einzelnen Dateien so viel übersichtlicher ist? Ich habe bei mir pro Technologie eine Datei (und eine gemischte, weil es nicht lohnt, für eine oder zwei Zeilen jeweils eigene Dateien anzulegen), wobei ich natürlich auch nur eine relativ begrenzte Zahl Geräte habe (mqtt:15, knx:ca 50), aber durch hierarchisches Einrücken kann man den Code bequem zuklappen. Der Vollständigkeit halber:

Code: Alles auswählen

Bridge mqtt:broker:embedded-mqtt-broker "MQTT Bridge" [
	host="192.168.xxx.xxx", 
	port="1883",
	secure=false,
	username="xxxxx",
	password="xxxxx"
 ] 

// Licht Büro
Thing topic:embedded-mqtt-broker:Shelly1_XXX "Beleuchtung " @ "Büro" (mqtt:broker:embedded-mqtt-broker)
	{
	Channels:
		Type switch : ch1 "Deckenleuchte (Büro)" [
			stateTopic="stat/Shelly1_XXX/POWER", 
			commandTopic="cmnd/Shelly1_XXXX/POWER"
		] 
	}
// Licht Kueche
Thing topic:embedded-mqtt-broker:Shelly2_XXX "Beleuchtung " @ "Küche" (mqtt:broker:embedded-mqtt-broker)
	{
	Channels:
		Type switch : ch1 "Deckenleuchte (Küche)" [
			stateTopic="stat/Shelly1_XXX/POWER", 
			commandTopic="cmnd/Shelly1_XXX/POWER"
		] 
	}
So kannst Du in VSCode je nach Belieben einzelne Channel oder ganze Things auf- und zuklappen. Wenn die Things als Kinder der Bridge konfiguriert werden, rückst Du sie einfach nochmals ein, dann kannst Du auch noch die Bridge zuklappen.

In Deiner Definition fehlt übrigens eine geschweifte schließende Klammer nach dem ersten Thing.