hallo zusammen, ich versuche gerade einen mit Tasmota geflashten WemosD1mini als TASMOTA_DEVICE anzulegen:
define NAStemp TASMOTA_DEVICE WemosNAS /Smarthome/Wemos/%topic%/%prefix%
bekomme aber immer die Meldung:
client device hash no IODev provided
und natürlich wird das nicht angelegt und ich kann auch das IODev (wie im Video beschrieben) nicht ändern
MQTT Parameter:
- Topic = WemosNAS, und
- Full Topic = /Smarthome/Wemos/%topic%/%prefix%
angelegt ...
ich bin absoluter Neuling bzgl. FHEM, aber ein gewisses Grundverständnis ist durchaus vorhanden ;)
aber sehe ich den Wald vor lauter Bäumen nicht :-\
danke schon mal für erhellende Einwürfe :)
Hallo,
ein paar mehr Informationen wären schon hilfreich gewesen!
Versuch mal das:
define NAStemp MQTT_DEVICE
attr NAStemp IODev mqtt
attr NAStemp stateFormat temperature °C
attr NAStemp subscribeReading_temperature /Smarthome/Wemos/WemosNAS/tele/temperature
vielen Dank erstmal für die schnelle Reaktion :-)
OK .. vielleicht habe ich mich echt etwas kurz gefasst ...
also: ich kann das Gerät schon als MQTT-Device anlegen und die als MQTT-Message verschickten Infos wie STATUS und POWER abgreifen.
Leider gibt es keine MQTT-Message mit */tele/temperature - Tasmota verschickt z.B. die Messwerte für Temperatur und Feuchtigkeit als JSON und darum wollte ich das Gerät eben als TASMOTA_DEVICE benutzen, da lt. Videobeschreibung (Sonoff Teil 9) dann die ganzen JSON-Nachrichten schon auseinandergenommen wurden
und eine Doppeldefinition als MQTT_DEVICE und TASMOTA_DEVICE geht ja nicht
Verwirrung :-\
Gleiche Fehlermeldung bei mir.
Schaut euch doch statt TASMOTA_DEVICE die "offiziellen" Module MQTT2_SERVER und MQTT2_DEVICE an:
https://forum.fhem.de/index.php/topic,90135.0.html (https://forum.fhem.de/index.php/topic,90135.0.html)
LG Thomas
hallo Thomas,
danke für den Hinweis.
Ein Frage vorweg - ehe ich das heute abend probiere: können MQTT2_DEVICEs mit jedem MQTT-Broker? Oder bilden MQTT2_SERVER und MQTT2_DEVICE eine Symbiose?
vielen Dank
Manfred
MQTT2_SERVER ersetzt einen externen Broker
das heißt, dass MQTT2_DEVICE mit jeden MQTT-Broker läuft über den die Geräte publizieren
Nein MQTT2_DEVICE läuft mit einem eigenen MQTT Server (Broker). MQTT2_DEVICE setzt das Modul MQTT2_Server voraus. Und der Mosqitto sollte dann am besten nicht mehr laufen oder man ändert die Ports der Geräte und des Brokers oder des Servers.
Wenn ihr euren bestehenden Broker/Server weiternutzen wollt, bieten sich sonst auch die Module MQTT und MQTT_DEVICE zusammen mit expandJSON (https://fhem.de/commandref.html#expandJSON) an.
LG Thomas
Zitat von: majorshark am 24 August 2018, 11:57:52
Nein MQTT2_DEVICE läuft mit einem eigenen MQTT Server (Broker). MQTT2_DEVICE setzt das Modul MQTT2_Server voraus. Und der Mosqitto sollte dann am besten nicht mehr laufen oder man ändert die Ports der Geräte und des Brokers oder des Servers.
Danke ... die Abhängigkeit der MQTT2* Geräte voneinander war vorher nicht ganz geklärt
Zitat von: ThoTo am 24 August 2018, 12:02:30
Wenn ihr euren bestehenden Broker/Server weiternutzen wollt, bieten sich sonst auch die Module MQTT und MQTT_DEVICE zusammen mit expandJSON (https://fhem.de/commandref.html#expandJSON) an.
LG Thomas
so wie ich das verstanden habe, sollte man sich ja mit
TASMOTA_DEVICE das händische Zerlegen der JSON-Messages (mit Hilfe von expandJSON)
ersparen ...
Zitat von: ManfredB am 23 August 2018, 22:09:03
hallo zusammen, ich versuche gerade einen mit Tasmota geflashten WemosD1mini als TASMOTA_DEVICE anzulegen:
define NAStemp TASMOTA_DEVICE WemosNAS /Smarthome/Wemos/%topic%/%prefix%
bekomme aber immer die Meldung:
client device hash no IODev provided
und natürlich wird das nicht angelegt und ich kann auch das IODev (wie im Video beschrieben) nicht ändern
MQTT Parameter:
- Topic = WemosNAS, und
- Full Topic = /Smarthome/Wemos/%topic%/%prefix%
angelegt ...
ich bin absoluter Neuling bzgl. FHEM, aber ein gewisses Grundverständnis ist durchaus vorhanden ;)
aber sehe ich den Wald vor lauter Bäumen nicht :-\
danke schon mal für erhellende Einwürfe :)
Läuft im übrigen bei mir auf dem Testsystem auch nicht. Im Livesystem dagegen schon. An der definition liegt es nicht.
Scheinbar sind nicht alle Abhängigkeiten erfüllt. Im Moment kann ich auch noch nicht sagen woran es bei mir liegt.
Workarround
Hallo zusammen,
bei mir laufen seid ca 3 MONATEN 3 Tasmota-Devices einwandfrei. Ich habe jetzt versucht noch ein 4. TASMOTA-DEVICE anzulegen.
Ich bekomme die selbe Fehlermeldung.!!!! ??????
Als workaround habe ich das neue DEVICE "händisch" in die fhem.cfg am Ende eingetragen
fhem.cfg
.
.
.
.
define MQTT_Steckdose03 TASMOTA_DEVICE MQTT_SD03 /SmartHome/Steckdosen/%topic%/%prefix%
attr MQTT_Steckdose03 userattr Subscribe_Reading_Status
attr MQTT_Steckdose03 IODev myBroker
Gespeichert, fhem neu gestartet, voila mein 4. TASMOTA-DEVICE ist am start. Von hier an kann ich alles weitere über das WEB Interface konfigurieren. Läuft wie die anderen auch.
Achtung Hinweis:
Bei der Änderung der fhem.cfg darauf achten das sich der Besitzer/Gruppe/ Schreib/Leserechte nicht ändern!!!!
Ändert sich hier etwas kann ggf FHEM selbst die Konfig nicht mehr speichern.
So ich habe nun mal mit völliger Ahnungslosigkeit rumprobiert ;D
Wenn ich das jetzt richtig verstanden habe kommt die Fehlermeldung aus dem 00_MQTT.pm Modul die durch das in der Zeile 126 angesporchen wird.
return MQTT::Client_Define($hash, $def);
Hier wird wohl kein IODev gefunden.
Jetzt hatte ich versucht den ganzen etwas unter die Arme zu greifen mit dem Stück Code
sub TASMOTA_DEVICE_Initialize($) {
....
$hash->{Clients} = "MQTT";
....
Hat aber leider auch nicht geklappt.
Jemand ein Tipp für mich, oder bin ich hier voll auf den Holzweg?
Gruß
Dennis
Hallo. Bei mir auch der gleiche Fehler. Bin aber drauf aufmerksam geworden weil meine Sonoffs nur noch grün blinken und nicht mehr geschaltet werden können über FHEM. In der Weboberfläche kommt in der Konsole auch nur noch
10:06:13 MQT: Verbindungsversuch...
10:06:13 MQT: Verbindung fehlgeschlagen aufgrund von 192.168.178.47:1883, rc 4. Wiederversuch in 10 s
von dort geht das schalten aber und beim Versuch ein neues anzulegen kommt halt oben der Fehler.
Benutze auch nur das Modul weil ich mit den Json nich klar komme
Ich bin jetzt auf MQTT2_Server umgestiegen, läuft super!
Ok. Auch noch mit Tasmota_Device? Darf ich fragen wie man da vor geht? Einfach nur das neue Modul einrichten?
Zitat von: Tabularasa am 11 September 2018, 16:50:01
Ok. Auch noch mit Tasmota_Device? Darf ich fragen wie man da vor geht? Einfach nur das neue Modul einrichten?
Nein ohne das Tasmota_Device.
Als erstes musst du deinen "alten" MQTT-Broker (z.B. Mosquitto) abstellen, nun einfach mit folgenden Define den MQTT2_Server anlegen
define MQTT2_SERVER MQTT2_SERVER 1883 global
Dann noch das Autocreate von den MQTT2_Server anschmeissen:
attr MQTT2_SERVER autocreate 1
Nun warten und freuen ;)
Hier noch mal 2 Ergänzungen die ich einer Tasmota Dose(SP111) hinzugefügt habe:
attr BU.Geraet.3DDrucker setList on Haus/BU.Geraet.3DDrucker/cmnd/power on\
off Haus/BU.Geraet.3DDrucker/cmnd/power off
attr BU.Geraet.3DDrucker stateFormat {
my $state = lc ReadingsVal($name, "POWER", "off");
my $devStateIcon = 'rc_GREEN.svg';
if ($state eq "off")
{
$devStateIcon = 'rc_RED.svg';
}
if ($state eq "offline")
{
$devStateIcon = 'rc_BLUE.svg';
}
"<img width='32px' height='32px' src='/fhem/images/fhemSVG/" . $devStateIcon . "'>" . sprintf(
" [Aktuell: %.1f W / %.3f A / Tag: %.2f kWh / Wifi-RSSI: %.0f %%]",
ReadingsVal($name,"ENERGY_Power",-1),
ReadingsVal($name,"ENERGY_Current",-1),
ReadingsVal($name,"ENERGY_Today",-1),
ReadingsVal($name,"Wifi_RSSI",-1)
)
}
attr BU.Geraet.3DDrucker userReadings state {lc ReadingsVal($name, "POWER", "")}
Ok danke. Ohne dem Tasmota_Device muss man aber mit expandJSON irgendwas machen oder löst das MQTT_Device jetzt auch alles in Readings alleine auf?
Zitat von: Tabularasa am 11 September 2018, 20:42:24
oder löst das MQTT_Device jetzt auch alles in Readings alleine auf?
Ja das MQTT2_Device macht es :)
Oh super. Klappt schonmal in die eine Richtung ;D aber aus FHEM schalten kann ich nicht ::)
Probier mal:
on /.../cmnd/POWER ON
off /.../cmnd/POWER OFF
VG Sebastian
Hallo. Ja es lag an dem / vor SmartHome. Der muss hin. Hatte ich nur noch nicht woanders gesehen, was sagt der aus? power on oder off konnten auch klein geschrieben werden... Danke