tuya-mqtt neben Mosquitto installiert, keine Verbindung!

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

oh73
Beiträge: 302
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: tuya-mqtt neben Mosquitto installiert, keine Verbindung!

Beitrag von oh73 »

der tuya-mqtt dienst sieht auch gut aus

Code: Alles auswählen

walter@walter-ZBOX-ID83:~$ sudo systemctl status tuya-mqtt.service
[sudo] Passwort für walter:
● tuya-mqtt.service - tuya-mqtt
     Loaded: loaded (/etc/systemd/system/tuya-mqtt.service; disabled; vendor pr>
     Active: active (running) since Sun 2022-08-07 20:52:17 CEST; 11h ago
   Main PID: 135449 (node)
      Tasks: 7 (limit: 9361)
     Memory: 65.1M
        CPU: 30.590s
     CGroup: /system.slice/tuya-mqtt.service
             └─135449 node /etc/openhab/scripts/tuya-mqtt/tuya-mqtt.js

Aug 07 20:52:17 walter-ZBOX-ID83 systemd[1]: Started tuya-mqtt.
aber es gibt da einige seltsame Sachen, weshalb das ganze wahrscheinlich nicht funktioniert!

1. es gibt 2 Config Dateien, wo Fehler verursachen.
in der config.json

Code: Alles auswählen

{
    "host": "localhost",
    "port": 1883,
    "topic": "tuya/",
    "mqtt_user": "xxxxx",
    "mqtt_pass": "xxxxx"
}
hatte ich Benutzer und Passwort von dem Api Key drin!
das geht gar nicht, besser ganz ohne!
beim host hatte ich die Ip angegeben, besser mit localhost!

in der devices.conf

Code: Alles auswählen

[
  {
    name: 'teckin 2',
    id: 'bfb92749aac0697xxxxx',
    key: '9e8f17b72bxxxxx',
	ip: '192.168.178.xxx'
  },
  {
    name: 'meter',
    id: '03410103a4e57cxxxxxx',
    key: 'd760a70210xxxxxx',
	ip: '192.168.178.xxx'
  },
  {
    name: 'teckin 1',
    id: 'bf51b009a88853dxxxxx',
    key: '8c6ef82b63xxxxxx',
	ip: '192.168.178.xxx'
  }
]
hatte ich die Namen so geändert wie sie im MQTT Explorer angezeigt werden, teckin_1 mit Unterstrich.
dann meldet mir der MQTT Explorer den Status (online, offline) nicht mehr!

auch seltsam, der MQTT Explorer geht nicht online mit Port 1883! nur wenn ich Port 8883 angebe!

die Things Datei hab ich aufgerämumt, da hat Udo mal wieder recht gehabt!
eine Bridge

Code: Alles auswählen

Bridge mqtt:broker:MqttBroker "MQTT Broker" [host="localhost", port="1883", clientID="xxxxx", secure=false, username="xxxxx", password="xxxxx"]
mit 2 Things angelegt, 1 x für Tasmota und einmal für tuya-mqtt,
das funktioniert soweit alles Fehlerfrei!

nur ob das richtig ist, weiß ich nicht.

Code: Alles auswählen

commandTopic= "tuya/teckin_1/command",
stateTopic="tuya/teckin_1/state",
on="{ \'code\': 'switch_1', \'value\': true }",
//on="true",
//off="{ \'code\': 'switch_1', \'value\': false }"  
off="{ \'code\': 'switch_1', \'value\': false }"
da muss ich noch bisschen versuchen.

Vermute aber mal das da mit der tuya-mqtt Installation was nicht stimmt, schon wegen den Port Nummern?

neu installieren bringt da wahrscheinlich auch nichts, höchstens den Rechner komplett neu aufsetzen?

Edit:
im Terminal kann ich mit

Code: Alles auswählen

tuya-cli set --id bf51b009a88853dxxxxxx --key 8c6ef82b63fcb448 --dps 1 --set true
schalten.
nur wie bekomme ich das in das openhab Thing?
OH 4.3.0 auf HP 26o G1 Dm Mini Pc mit MX_Linux

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: tuya-mqtt neben Mosquitto installiert, keine Verbindung!

Beitrag von udo1toni »

Die config.json beinhaltet den Zugang zum Broker, das sind die selben Zugangsdaten, die Du auch in openHAB einträgst. Also das, was Du auch in der Bridge für Tasmota angibst. Wie gesagt, tuya-mqtt ist ein Client.

localhost kannst Du nur angeben, wenn es sich um die selbe Maschine handelt, auf der auch mosquitto läuft.
Im MQTT Explorer musst Du natürlich die IP des Rechners angeben, so wie in den Tasmpota Clients auch (dort kommst Du mit localhost für den Broker auch nicht weit).

Wo kommen denn die Namen der Devices zum Einsatz?
Ich hatte es so verstanden, dass die Geräte alle unter dem Topic tuya/ zu finden sind (gesetzt in der config.json) und dann dort pro Device ein Topic mit der Device ID erzeugt wird.
Falls tuya-mqtt hier aber die angegebenen Namen verwendet, so dürfen die Namen vermutlich kein Leerzeichen enthalten. Wobei das nicht wirklich klar definiert ist, aber best practice kann man hier nachlesen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

oh73
Beiträge: 302
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: tuya-mqtt neben Mosquitto installiert, keine Verbindung!

Beitrag von oh73 »

so, bin etwas weiter.

Hauptfehler, Mosquitto hat nicht richtig funktioniert!
wahrscheinlicher Grund:
Ubuntu hat mich letzte Woche gezwungen ein Update von 21.10 auf 22.04 zu machen!
dabei hat war beim Mosquitto Paket eine falsche "libmosquitto1" installiert!

als 2. hab ich in der Devices.conf noch ein
version: '3.3'
eingefügt, ob das wichtig war ??

auf jeden Fall hat mir dann der MQTT Explorer die Daten von meinem Schakter richtig angezeit.

Bild

der Channel im Thing für den Schalter muss dann so aussehen,

Code: Alles auswählen

Type switch : Teckin_bf51b009a88853dxxxxxx "Teckin 11" [
			
commandTopic= "tuya/teckineins/dps/??????",
stateTopic="tuya/teckineins/dps/1/state",
			
on="true", 
off="false"
jetzt funktioniert zu mindest die Status Abfrage, wenn ich den Schalet von Hand Schalte ändert sich in openhab der Status!
wichtig , on="true", off="false", muss genau so bleiben damit der Status funktioniert!

aber leider funktioniert das schalten noch nicht, da weiß ich nicht was ich bei commandTopic bei den Fragezeichen einsetzen soll?
hab schon so einiges probiert, aber bekomme es nicht hin das er schaltet.
müsste ja genau hinter dps ein state = {"1":" true } senden.

aber wie gesagt, wenn ich bei on, off was ändere, geht der Status nicht mehr!

Edit:

es funktioniert!

Code: Alles auswählen

	commandTopic= "tuya/teckineins/dps/1/command",
	stateTopic="tuya/teckineins/dps/1/state",
			
	on="true", 
	off="false"
noch eine Anmerkung, teckineins ist der Name aus der device.conf
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
OH 4.3.0 auf HP 26o G1 Dm Mini Pc mit MX_Linux

oh73
Beiträge: 302
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: tuya-mqtt neben Mosquitto installiert, keine Verbindung!

Beitrag von oh73 »

neue Erfolgsmeldung!

aber vorab, die Teckin Schalter waren nur zum versuchen.

Hintergrund Gedanke war, in der SmartLife app ist auch ein Wifi Smartmeter, und an diese Daten wollte ich!
konnte mit dem Smartmeter aber nicht testen, da ich nicht irgendwann im dunkeln stehen wollte!

nachdem die Teckin Schalter aber funktionieren, hab ich mich auch an den Smartmeter gewagt.
hatte mir zwar schon vorher den Status online, offline angezeigt, mehr aber nicht.

hab den jetzt auf dem Hande in der App den Namen mal geändert, von meter in smeter,
in der device.conf den Namen geändert und den tuya-mqtt.service neu gestartet.

und danach waren alle Channels von dem Smartmeter im MQTT Explorer zu sehen!

Bild
mqtt-smeter.jpg
jetzt das auslesen ist kein Problem mehr,
hab mal bei dsp 19 mit einen String Item versucht, das geht.

muss nur noch mal versuchen das als Nummer aus zu lesen,
dann richtig formatieren und zu ordnen.

dsp 18 = mA
dsp 19 = Watt, momentan Verbrauch
dsp 20 = Volt, wird nicht gebraucht !
dsp 101 = Total Kwh
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
OH 4.3.0 auf HP 26o G1 Dm Mini Pc mit MX_Linux

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: tuya-mqtt neben Mosquitto installiert, keine Verbindung!

Beitrag von udo1toni »

Na, das sieht doch gut aus! mosquitto als Übeltäter ist natürlich gemein, vor allem, wenn es scheinbar klaglos funktioniert.
Die Aktoren zu schalten kann jetzt nicht mehr wirklich viel sein, falls Du doch noch Lust verspüren solltest...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

oh73
Beiträge: 302
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: tuya-mqtt neben Mosquitto installiert, keine Verbindung!

Beitrag von oh73 »

Hallo,

schalten funktioniert ja auch schon!

hab gerade eine Rule geschrieben um die Werte vom Smartmeter vom String in Number um zu wandeln.

brauche die Werte als Zahl, da bei Watt der Wert durch 10 und bei kWh der Wert durch 100 geteilt werden muss!

schöner wäre es wenn man die Werte vom Thing als Zahl bekommen könnte.

aber man kann nicht alles haben.

also alles funktioniert,

Danke noch mal für den Tip mit dem MQTT Explorer, ohne den hätte ich das nicht geschafft!
OH 4.3.0 auf HP 26o G1 Dm Mini Pc mit MX_Linux

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: tuya-mqtt neben Mosquitto installiert, keine Verbindung!

Beitrag von udo1toni »

Ja, das geht auch direkt vom Thing.
Vorausgesetzt, der Channel liefert eine Zahl, kannst Du den Channel auch als Number definieren.

Für die Umrechnung (z.B. teilen durch 10) kannst Du dann das Profile verwenden. Das Profile ist die Schnittstelle zwischen Channel und Item.
Als Standard wird der Wert aus dem Channel exakt so übernommen, wie er ankommt.
Man kann aber auch eine Transformation vornehmen, in dem Fall wäre das JavaScript (dazu muss der JS Transformation Service installiert sein).
Und dann braucht es ein kleines JavaSript Script.
Das Script wird im Ordner /etc/openhab/transform/ unter dem Namen divby10.js gespeichert (könnte auch ein anderer Name sein, aber bietet sich halt an) und hat folgenden Inhalt:

Code: Alles auswählen

(function(i) {
    return parseFloat(i) / 10;
})(input)
Der ankommende Wert wird als Fließkommazahl durch zehn geteilt und das Ergebnis ausgegeben.

Im Profile wählst Du dann JS aus, und als Parameter gibst Du divby10.js an.
Schwupps, sollte im Item der korrekte Zahlenwert stehen, ganz ohne Rule.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten