Error:Modul 00_MQTT - probemon.py [gelöst]

Begonnen von Edi77, 03 Februar 2019, 23:27:26

Vorheriges Thema - Nächstes Thema

Edi77

Hallo,

Ich habe hier mal was nachgebaut https://haus-automatisierung.com/projekt/2019/01/13/projekt-paketdienst-erkennen-probe-wifi.html und die Daten komme auch schön auf dem FHEM an.
Allerdings kommt autocreat da wohl nicht klar.

Ich habe es mal mir MQTT2_DEVICE versucht, hat aber nicht funktioniert.
Ich hätte es gerne über den MQTT2_SERVER gelöst statt über mosquitto 3.1 und MQTT2_Client

Sieht irgendwie nach JSON aus  :-\


define MQTT2_FHEM_Server MQTT2_SERVER 1883 global
attr MQTT2_FHEM_Server autocreate 1
attr MQTT2_FHEM_Server room MQTT

define RPi3Scan1 MQTT2_DEVICE
attr RPi3Scan1 IODev MQTT2_FHEM_Server
attr RPi3Scan1 room MQTT
attr RPi3Scan1 subscribeReading_RPi3Scan1_macaddress /ProbeRequest/macaddress


Logfile

2019.02.03 23:14:45 1: reload: Error:Modul 00_MQTT deactivated:
Attempt to reload Net/MQTT/Message.pm aborted.
Compilation failed in require at ./FHEM/00_MQTT.pm line 80.
BEGIN failed--compilation aborted at ./FHEM/00_MQTT.pm line 80.

2019.02.03 23:14:45 0: Attempt to reload Net/MQTT/Message.pm aborted.
Compilation failed in require at ./FHEM/00_MQTT.pm line 80.
BEGIN failed--compilation aborted at ./FHEM/00_MQTT.pm line 80.

2019.02.03 23:14:45 1: reload: Error:Modul 10_MQTT_GENERIC_BRIDGE deactivated:
Can't continue after import errors at ./FHEM/10_MQTT_GENERIC_BRIDGE.pm line 344.
BEGIN failed--compilation aborted at ./FHEM/10_MQTT_GENERIC_BRIDGE.pm line 381.

2019.02.03 23:14:45 0: Can't continue after import errors at ./FHEM/10_MQTT_GENERIC_BRIDGE.pm line 344.
BEGIN failed--compilation aborted at ./FHEM/10_MQTT_GENERIC_BRIDGE.pm line 381.

2019.02.03 23:14:45 0: ERROR: Cannot autoload MQTT_GENERIC_BRIDGE
2019.02.03 23:14:45 3: MQTT2_FHEM_Server: Unknown code autocreate::/ProbeRequest:{"macaddress": "28:ad:3e:........", "make": "UNKNOWN", "rssi": 0, "ssid": "AP1", "time": "2019-02-03T22:14:44.755235"}, help me!


Ich habe mir das auch mal auf einem normalen mosquitto 3.1 angeschaut


Client mosqsub|1512-ubuntu-MQT received PUBLISH (d0, q0, r0, m0, '/ProbeRequest', ... (118 bytes))
/ProbeRequest {"macaddress": "28:ad:3e:0d:.....", "make": "UNKNOWN", "rssi": 0, "ssid": "AP1", "time": "2019-02-03T21:41:01.368723"}
Client mosqsub|1512-ubuntu-MQT received PUBLISH (d0, q0, r0, m0, '/ProbeRequest', ... (125 bytes))
/ProbeRequest {"macaddress": "5c:cf:7f:1f:.....", "make": "Espressif Inc.", "rssi": 0, "ssid": "AP1", "time": "2019-02-03T21:41:02.062853"}
Client mosqsub|1512-ubuntu-MQT received PUBLISH (d0, q0, r0, m0, '/ProbeRequest', ... (125 bytes))
/ProbeRequest {"macaddress": "5c:cf:7f:1f:.....", "make": "Espressif Inc.", "rssi": 0, "ssid": "AP1", "time": "2019-02-03T21:41:02.268538"}

Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

hexenmeister

#1
Du verwendest irgendwo GenericBrigde, sie hat (noch) feste Abhängigkeiten zum MQTT Modul. Dieses erfordert wiederum bestimmte Bibliotheken. In diesem Fall fehlt wohl das lib pluggable.

Installiere es, wie im wiki beschrieben.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Edi77

Danke die Fehlermeldung ist weg, aber irgendwie erstellt er automatisch kein neues Device ......  :-\


2019.02.04 01:32:12 5: PINGREQ:
2019.02.04 01:32:12 4: MQTT2_FHEM_Server_192.168.1.99_44753  PINGREQ
2019.02.04 01:32:13 5: PINGREQ:
2019.02.04 01:32:13 4: MQTT2_FHEM_Server_192.168.1.99_44753  PINGREQ
2019.02.04 01:32:14 5: PUBLISH: (0)(13)/ProbeRequest(0)(200){"macaddress": "28:ad:3e:0d:.....", "make": "UNKNOWN", "rssi": 0, "ssid": "AP1", "time": "2019-02-04T00:32:14.435950"}
2019.02.04 01:32:14 4: MQTT2_FHEM_Server_192.168.1.99_44753  PUBLISH /ProbeRequest:{"macaddress": "28:ad:3e:0d:.....", "make": "UNKNOWN", "rssi": 0, "ssid": "AP1", "time": "2019-02-04T00:32:14.435950"}
2019.02.04 01:32:14 5: MQTT2_FHEM_Server: dispatch autocreate::/ProbeRequest:{"macaddress": "28:ad:3e:0d:.....", "make": "UNKNOWN", "rssi": 0, "ssid": "AP1", "time": "2019-02-04T00:32:14.435950"}
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

hexenmeister

Dazu kann ich leider nichts sagen, ich verwende kein Autocreate. Lege doch per Hand an, was du brauchst.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

rudolfkoenig

MQTT2_FHEM_Server: dispatch autocreate::/ProbeRequest:
clientId ist leer, das ist laut RFC unzulaessig.
Achtung: MQTT2_DEVICE ignoriert auch clientIDs der Sorte mosqpub.*, um mosquitto_pub verwenden zu koennen.

Edi77

Hallo,

Vielleicht verstehe ich da was falsch?
Vom Client kann ich keine clientId mit geben


a command line tool for logging 802.11 probe request frames

optional arguments:
  -h, --help            show this help message and exit
  -i INTERFACE, --interface INTERFACE
                        capture interface
  -t TIME, --time TIME  output time format (unix, iso)
  -b MAX_BYTES, --max-bytes MAX_BYTES
                        maximum log size in bytes before rotating
  -c MAX_BACKUPS, --max-backups MAX_BACKUPS
                        maximum number of log files to keep
  -d DELIMITER, --delimiter DELIMITER
                        output field delimiter
  -f, --mac-info        include MAC address manufacturer
  -s, --ssid            include probe SSID in output
  -r, --rssi            include rssi in output
  -D, --debug           enable debug output
  -l, --log             enable scrolling live view of the logfile
  -x MQTT_BROKER, --mqtt-broker MQTT_BROKER
                        mqtt broker server
  -o MQTT_PORT, --mqtt-port MQTT_PORT
                        mqtt broker port
  -u MQTT_USER, --mqtt-user MQTT_USER
                        mqtt user
  -p MQTT_PASSWORD, --mqtt-password MQTT_PASSWORD
                        mqtt password
  -m MQTT_TOPIC, --mqtt-topic MQTT_TOPIC
                        mqtt topic
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

rudolfkoenig

ZitatVom Client kann ich keine clientId mit geben
Dann bitte einen RFC-Konformen Client verwenden.
Es kann auch sein, dass ich mich irre, aber um das zu pruefen brauche ich die CONNECT Zeile im MQTT2_SERVER Log.

Edi77

Hallo,

Habe die connect Zeile


2019.02.04 11:41:38 4: Connection accepted from MQTT2_FHEM_Server_192.168.1.99_52563
2019.02.04 11:41:38 5: CONNECT: (0)(4)MQTT(4)(2)(0)(1)(0)(0)
2019.02.04 11:41:38 4: MQTT2_FHEM_Server_192.168.1.99_52563  CONNECT V:4 keepAlive:1
2019.02.04 11:41:39 5: PINGREQ:
2019.02.04 11:41:39 4: MQTT2_FHEM_Server_192.168.1.99_52563  PINGREQ
2019.02.04 11:41:40 5: PINGREQ:
2019.02.04 11:41:40 4: MQTT2_FHEM_Server_192.168.1.99_52563  PINGREQ
2019.02.04 11:41:41 5: PINGREQ:
2019.02.04 11:41:41 4: MQTT2_FHEM_Server_192.168.1.99_52563  PINGREQ
2019.02.04 11:41:42 5: PUBLISH: (0)(13)/ProbeRequest(0)(1){"macaddress": "28:ad:3e:0d:.....", "make": "UNKNOWN", "rssi": 0, "ssid": "AP1", "time": "2019-02-04T10:41:41.756576"}
2019.02.04 11:41:42 4: MQTT2_FHEM_Server_192.168.1.99_52563  PUBLISH /ProbeRequest:{"macaddress": "28:ad:3e:0d:.....", "make": "UNKNOWN", "rssi": 0, "ssid": "AP1", "time": "2019-02-04T10:41:41.756576"}
2019.02.04 11:41:42 5: MQTT2_FHEM_Server: dispatch autocreate::/ProbeRequest:{"macaddress": "28:ad:3e:0d:.....", "make": "UNKNOWN", "rssi": 0, "ssid": "AP1", "time": "2019-02-04T10:41:41.756576"}
2019.02.04 11:41:43 5: PINGREQ:
2019.02.04 11:41:43 4: MQTT2_FHEM_Server_192.168.1.99_52563  PINGREQ
2019.02.04 11:41:44 5: PINGREQ:
2019.02.04 11:41:44 4: MQTT2_FHEM_Server_192.168.1.99_52563  PINGREQ
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

rudolfkoenig

Danke, ich habe es richtig vermutet.

Ich lag aber falsch bei meiner RFC-Aussage: Leeres ClientId ist zulaessig.
Autocreate klappt mit MQTT2_SERVER ohne clientId nicht, und das bleibt auch so, da ich nicht weiss, wie das funktionieren soll.

Edi77

Danke für die Antwort.

Die obige Syntax war ja wohl falsch, habe es jetzt geändert, funktioniert aber auch nicht ???


define MQTT2_FHEM_Server MQTT2_SERVER 1883 global
attr MQTT2_FHEM_Server autocreate 1
attr MQTT2_FHEM_Server room MQTT

define RPi3Scan1 MQTT2_DEVICE ProbeRequest
attr RPi3Scan1 IODev MQTT2_FHEM_Server
attr RPi3Scan1 room MQTT
attr RPi3Scan1 readingList ProbeRequest:.* { json2nameValue($EVENT, '') }
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

rudolfkoenig

Dein Topic is /ProbeRequest =>
attr RPi3Scan1 readingList /ProbeRequest:.* { json2nameValue($EVENT, '') }

Edi77

Danke rudolf das wars der "/" hat gefehlt und ich bastel darum und denke warum geht das nicht warum warum ............. ;D

Aber nur so lernt man, gerade MQTT ist ja nicht so ein einfaches Thema
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Edi77

Wollte hier noch was ergänzen falls das jemand nachbauen möchte.
Leider habe ich einige Fehler gefunden.
Die probemon.py habe ich angepasst das mit -r auch die rssi übermittelt wird

Der probemon.service sieht auch etwas anders aus

[Unit]
Description=Probemon MQTT Service

[Service]
ExecStart=/home/pi/probemon/python probemon.py -i wlan1 -f -s -l -r --mqtt-broker 192.168.x.x --mqtt-topic /ProbeRequest -u xxx -p xxx
StandardOutput=null

[Install]
WantedBy=multi-user.target
Alias=probemon.service


Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D