NEWS
Mqtt best practice
-
@mickym
ich gebe zu ich stehe gerade auf dem Schlauch mit dem "überlisten" -
@dos1973 Mach mal Deinen Baum mit dem relay Knoten ganz auf und poste mal den Screenshot
-
-
@dos1973 sagte in Mqqt best practice:
Genau wie ich dacht - Dir fehlt der command Datenpunkt.
Um den Admin5 zu überlisten. Mach den Relay Knoten aktiv und drücke das + oben, um einen neuen Datenpunkt hinzuzufügen:
In dem Dialog gibst Du dann den Name das Datenpunktes 0.command ein - wie in dem Screenshot unten.
-
-
@dos1973 Generell findest Du die Datenpunkte zum steuern für jedes Shelly Device in der offiziellen Shelly Dokumentation:
https://shelly-api-docs.shelly.cloud/gen1/#shelly-plug-plugs-mqtt
Du siehst hier braucht es den command Datenpunkt und dann kannst den schalten.
-
@dos1973 probiere mal folgendes:
hast du einen MQTT Client auf deiner Maschine? Ich habe unter Windows den MQTT.fx
Dort die Adresse des Mosquittos eintragen:
dann verbinden und bei publish den publish string eintragen. Bei mir z.B.:dann auf publish klicken. Der Shelly sollte schalten. Bei mir wurden damit auch die Datenpunkte dafür angelegt...
evt. muss ON auch on sein... Wenn der Shelly schaltet bei den Datenpunkten schauen... Geht auch im 5er Admin...
RUDI
-
@dos1973 sagte in Mqqt best practice:
@mickym sagte in Mqqt best practice:
0.command
aber ich kann nur "Verzeichnis" auswählen
Wieder löschen - Du hast Dich nicht genau an meine Vorgehensweise gehalten.
- Du markierst den Relay Datenpunkt und NICHT die 0 !!!!
-
Jetzt + drücken
-
Und als Name: 0.command eingeben
Ansonsten gehst halt auf den Admin4 zurück erstellst die Datenpunkte und stellst dann wieder um.
Anhaken, Browser refreshen und dann alle benötigten DP anlegen. Ist leider so mit dem S..Admin5
-
@barnie2017
das klappt! -
@barnie2017 sagte in Mqqt best practice:
@dos1973 probiere mal folgendes:
hast du einen MQTT Client auf deiner Maschine? Ich habe unter Windows den MQTT.fx
Dort die Adresse des Mosquittos eintragen:
dann verbinden und bei publish den publish string eintragen. Bei mir z.B.:dann auf publish klicken. Der Shelly sollte schalten. Bei mir wurden damit auch die Datenpunkte dafür angelegt...
evt. muss ON auch on sein... Wenn der Shelly schaltet bei den Datenpunkten schauen... Geht auch im 5er Admin...
RUDI
Das geht natürlich - aber geht auch mit direkten publishen im MQTT-Adapter. Das wurde nur mit dem Admin 5 nicht berücksichtigt und scheint wohl auch nicht so schnell behoben zu werden.
-
@mickym schon mal meinen Weg probiert? siehe Post vorher... Damit konnte ich allen fehlenden Datenpunkte im 5er Admin anlegen. Kein Aufwand und man sieht gleich, ob der Befehl stimmt...
RUDI
-
@barnie2017 sagte in Mqqt best practice:
Damit konnte ich allen fehlenden Datenpunkte im 5er Admin anlegen
RUDI
wieviel DP brauchst denn eigentlich?
ich dachte ja damit wird's einfacherwenn ich 50 Shelly habe...puhh.
Ich merke erst jetzt welche Service so eine Adapter ist -
@barnie2017 Das ist schon logisch - Du kannst über jeden Client alle Topics publishen
- Dafür brauchst aber einen extra Client, den man eigentlich nicht braucht, wenn der Admin 5 hier nicht dazwischen funken würde.
-
@dos1973 Wie gesagt stell auf die alte Oberfläche um und erstelle die Datenpunkte das geht schon. In 20 Minuten bist fertig und ist nur Einmalaufwand.
-
@mickym sagte in Mqqt best practice:
0.command
ich habe genau das befolgt, meine ich zumindest.
ich habe "relay" Markiert dann + "0.command"
aber es wird immer ein Verzeichnis angelegt -
.command habe ich verstanden
was macht den Set und Status?
-
@dos1973 OK - dann muss man den relay Datenpunkt als Folder definieren. Kannst Du mal schauen, ob das Stiftsymbol hinter dem relay DP steht?
-
@mickym
nein, relay hat nur den Mülleimer -
@dos1973 status musst nicht anlegen.
Wie gesagt schau Dir die Doku ggf. an.
Wenn Du einen Dimmer hast dann dimmst Du über das set Kommando diesen.Den Vorteil, den Du mit reinem MQTT-hast, ist dass Du nicht wie beim Shelly Adapter darauf warten musst, dass das Gerät mit den entsprechenden Funktionen implementiert wird.
- So um das Problem mit den fehlenden Objekten im mqtt Adapter zu lösen, lass mal folgendes Skript laufen:
/** * Zweck: Korrigiert übergeordnete Ordnerstrukturen eines Datenpunkts * Datum: 07.08.2021 * Autor: @fastfoot */ // In den Settings der Javascript-Instanz muss setObject erlaubt sein!!! let arr = [], id = ''; const ids = $('mqtt.0.*'); ids.each(idTmp => { arr=idTmp.split('.'); arr.splice(arr.length-1); id=arr.join('.'); if(arr[0] === '0_userdata' || arr[0] === 'alias' || arr[0] === 'mqtt' || arr[0] === 'javascript'){ correctObject(id, arr); } }) function correctObject(id,arr){ if(arr.length === 2) return; if(!existsObject(id)){ let obj = {}; obj = { type: 'folder', common:{ name: arr[arr.length - 1] } } extendObject(id, obj, e => { if (e) log('Fehler beim Schreiben des Objektes: '+ id + ' ' + e); }) } arr.splice(arr.length - 1); id = arr.join('.'); correctObject(id, arr); }
Empfehle Dir aber zum Erstellen erst mal auf admin4 umzustellen (bleibt ja der Admin5 Adapter nur mit alter Oberfläche - kannst ja dann wieder umstellen).
-
@mickym sagte in Mqqt best practice:
Den Vorteil, den Du mit reinem MQTT-hast, ist dass Du nicht wie beim Shelly Adapter darauf warten musst, dass das Gerät mit den entsprechenden Funktionen implementiert wird.
das ist genau der Grund warum ich das machen wollte.
command und Set habe ich auch begriffen...
ich brauche nochmals ein Bsp für den Status?
und ich weiß leider nicht wieder der admin von 5 auf 4 gewechselt werden kann, lese ich heute das erste mal.
btw. Vielen Dank für deine Hilfestellung!