[Bugs] 00_MQTT2_SERVER / 10_MQTT2_DEVICE

Begonnen von betateilchen, 10 August 2018, 18:01:33

Vorheriges Thema - Nächstes Thema

SamNitro

Ok dann warte ich mal aufs update :)
Danke
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

SamNitro

Konnte nicht warten  ;D
Habe es aus dem SVN genommen, nun läuft alles super (Für meine zwecke) ;)
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

warp10

Hi,
erstmal vielen Dank für das neue Modul! Das sollte für die meisten Fälle locker ausreichen!

Bin gerade am rumspielen und bekomme immer nur folgendes im Log:


2018.08.17 22:45:36 4: Connection accepted from mqtt2_server_192.168.2.104_56853
2018.08.17 22:45:36 4: mqtt2_server_192.168.2.104_56853  CONNECT V:4 keepAlive:60
2018.08.17 22:45:44 2: mqtt2_server_192.168.2.104_56853 PUBLISH before CONNECT, disconnecting


Grüße, Thorsten

rudolfkoenig

ZitatPUBLISH before CONNECT, disconnecting
Was ist das fuer ein Client?
Kriegst du den clientId sonst raus?
Koenntest du den Verkehr irgendwie mitprotokollieren?

warp10

Der Client ist ein python-Script um die Temperaturwerte von einem Bluetooth Grillthermometer zu erhalten. (siehe https://github.com/bjoernhoefer/igrill)
Die relevanten Zeilen sind diese hier:

import time
import paho.mqtt.client as mqtt

mqtt_server = "127.0.0.1"
INTERVAL = 15

# MQTT Section
client = mqtt.Client()
client.connect(mqtt_server, 1883, 60)
client.loop_start()

if __name__ == '__main__':
periph = IGrillV2Peripheral(ADDRESS)
while True:
  temperature=periph.read_temperature()
  # Probe 1
  if temperature[1] != 63536.0:
   client.publish("bbq/probe1", temperature[1])

  # Probe 2
  if temperature[2] != 63536.0:
   client.publish("bbq/probe2", temperature[2])

  # Probe 3
  if temperature[3] != 63536.0:
   client.publish("bbq/probe3", temperature[3])

  # Probe 4
  if temperature[4] != 63536.0:
   client.publish("bbq/probe4", temperature[4])

  client.publish("bbq/battery", periph.read_battery())

  time.sleep(INTERVAL)


Mitprotokollieren muss ich mal schauen ob und was an der mosquitto config geändert werden muss.

rudolfkoenig

Habs gefixt. Workaround in deinem Script bis zum update:
client = mqtt.Client(client_id="myscript")

meier81

Hallo und guten Abend,

echt super Arbeit die du da gemacht hast, reicht für meine Sonoff-Geräte und mein Jarolift-Gateway locker aus. Habe nur eine Frage bezüglich LWT, mit mosquitto bekomme ich von meinen Geräten ein online bzw. offline im LWT-Reading nach kurzer Zeit sobald ich das Device trenne, das funktioniert aber mit dem MQTT2_DEVICE leider irgendwie nicht, habe da leider keine Idee mehr. Meine Definition sieht so aus zur Zeit:


define MQTT_Server MQTT2_SERVER 1883 global

define JaroliftDongle MQTT2_DEVICE
attr JaroliftDongle IODev MQTT_Server
attr JaroliftDongle readingList tele/jarolift-test/LWT:.* state\
  stat/jarolift-test/devicecounter:.* devicecounter


Sollte doch soweit alles korrekt sein. Der Wert online funktioniert auch, reading wird erneuert sobald ich den JaroliftDongle wieder unter Spannung setze, wenn ich ihn spannungslos mache sehe ich auch beim MQTT2_SERVER das die nrclients eins weniger werden, aber das reading bleibt auf online und ändert sich nicht zu offline.

Hat da jemand eine Idee von euch?
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || SIGNALduino 433MHz mit Maple mini || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices

SamNitro

Nimm mal:
attr JaroliftDongle readingList tele/jarolift-test/LWT:.* LWT
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

meier81

Zitat von: SamNitro am 18 August 2018, 20:16:06
Nimm mal:
attr JaroliftDongle readingList tele/jarolift-test/LWT:.* LWT

Hab ich eben auch schon probiert, leider auch keine Änderung.
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || SIGNALduino 433MHz mit Maple mini || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices

meier81

Hab eben mal ein anderes Device ausprobiert, eine Sonoff S20 Steckdose mit Tasmota drauf, gleiches Problem. Hier die Config:

define SteckdoseMQTT2 MQTT2_DEVICE
attr SteckdoseMQTT2 IODev MQTT_Server
attr SteckdoseMQTT2 eventMap ON:on OFF:off
attr SteckdoseMQTT2 readingList tele/steckdose/LWT:.* LWT\
  stat/steckdose/POWER:.* state
attr SteckdoseMQTT2 room MQTT
attr SteckdoseMQTT2 setList ON cmnd/steckdose/POWER ON\
  OFF cmnd/steckdose/POWER OFF
attr SteckdoseMQTT2 webCmd on:off
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || SIGNALduino 433MHz mit Maple mini || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices

SamNitro

(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

meier81

Zitat von: SamNitro am 18 August 2018, 20:47:15
lass mal den "\" hinter LWT\ weg


Den brauch ich aber doch, habe doch zwei Einträge in readingList, da werden die Zeilen doch mit "\" getrennt. Ist aber auch nur die Ansicht der fhem.cfg, im Device im attr readingList sieht das ganze so aus:

tele/jarolift-test/LWT:.* LWT
stat/jarolift-test/devicecounter:.* devicecounter
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || SIGNALduino 433MHz mit Maple mini || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices

warp10

Zitat von: rudolfkoenig am 18 August 2018, 16:55:34
Habs gefixt. Workaround in deinem Script bis zum update:

Top! Vielen Dank!

rudolfkoenig

Zitatmit mosquitto bekomme ich von meinen Geräten ein online bzw. offline im LWT-Reading nach kurzer Zeit sobald ich das Device trenne, das funktioniert aber mit dem MQTT2_DEVICE leider irgendwie nicht
War ein Bug, LWT wurde zwar an die MQTT Verbindungen geschickt, nicht aber an die MQTT2_DEVICE Instanzen.
Habs gefixt und eingecheckt.

meier81

Zitat von: rudolfkoenig am 19 August 2018, 11:12:39
War ein Bug, LWT wurde zwar an die MQTT Verbindungen geschickt, nicht aber an die MQTT2_DEVICE Instanzen.
Habs gefixt und eingecheckt.


Hab´s mir eben mal vom SVN runtergeladen und probiert, funktioniert einwandfrei! Echt super Arbeit, werde heute Abend mal den mosquitto deinstallieren.


Gruß Markus
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || SIGNALduino 433MHz mit Maple mini || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices