Ansicht:   

#439984

MagicBird

Berlin,
06.07.2020, 09:28:41

MQTT Mosquitto für PHP (web.net)

Hallo Forum,

nun möchte ich doch mal endlich mit MQTT diese ganze mich mal befassen und habe mir 3 dieser WLAN Steckdosen gekauft und mit Tasmota geflasht und ja ich sehe meine WLAN Dosen und kann sie auch schalten.

NUn habe ich gestern abend mal im Netz nach einer Möglichkeit gesucht für mein bestehenden PI3 mit den 433MHz RX und TX Modulen eine Erweiterung zu finden aber irgend etwas hat dann doch gefehlt.

Ich fand:
https://github.com/mgdm/Mosquitto-PHP
https://github.com/mqtt/mqtt.github.io
https://hotexamples.com/de/examples/-/Mosquitto%255CClient/-/php-mosquitto%255cclient-class-examples.html

Aber mit nichts bin ich davon gegangen...
Habt ihr etwas brauchbares für mich.

danke Lars

#439990

Hackertomm

06.07.2020, 15:24:54

@ MagicBird

MQTT Mosquitto für PHP

Der PI3 hat doch WLAN oder?
Und MQTT geht doch über WLAN oder?

--
[image]

#439992

MagicBird

Berlin,
06.07.2020, 16:45:38

@ Hackertomm

MQTT Mosquitto für PHP

> Der PI3 hat doch WLAN oder?
> Und MQTT geht doch über WLAN oder?

Also alle meine PI's sind online, entweder Lan der Wlan. Auf einem habe ich openhab und nun würde ich versuchen wollen meine RX empfangenden Signale an diesen OH Pi zu senden.

Lars

#440009

Hackertomm

06.07.2020, 21:57:54

@ MagicBird

MQTT Mosquitto für PHP

Hm, da brauchst auf dem PI entweder einen MQTT Brocker oder einen MQTT Client.
Aber ich kenne mich mit der Materie nicht aus, da ich nicht mit MQTT arbeite.
Bei mir läuft eine Raspberrymatic(Homematic) als VR auf meiner NAS, mit einem USB Funkmodul(866MHz).
Damit bin ich komplett vom PI, denn die NAS läuft sowieso und die Radpberrymatic frisst da kaum Ressourcen.

--
[image]

#440019

MagicBird

Berlin,
07.07.2020, 07:48:07

@ Hackertomm

MQTT Mosquitto für PHP

Guten Morgen,

ja das ist nicht weiter schlimm, jeder tip oder Idee bringt uns weiter.

mir ging es nur darum wie man diese Erweiterungen installiert und auch einsetzt.

https://github.com/php-mqtt/client
Dieses habe ich nun im /home/PI/Vendor/ aber wie kann ich das einsetzen oder muß ich das verschieben?

das erste Script Publish bekomme ich nur fehler…

Lars

#440032

Johann

07.07.2020, 18:16:36

@ MagicBird

MQTT Mosquitto für PHP

> https://github.com/php-mqtt/client
> Dieses habe ich nun im /home/PI/Vendor/ aber wie kann ich das einsetzen
> oder muß ich das verschieben?

Du musst in deiner Publish Skript Datei die "autoload.php" in dem vendor Verzeichnis inkludieren.

include("vendor/autoload.php");

Dazu musst Du natürlich den vendor Ordner idealerweise dahin verschieben, wo Du auch diese Publish-Skriptdatei entwickeln willst.

#440038

MagicBird

Berlin,
07.07.2020, 22:25:37

@ Johann

MQTT Mosquitto für PHP

Hallo Johann,

danke also muß das ganze ins www ordner.

Das versuche ich doch mal gleich.

Lars

#440043

Johann

08.07.2020, 07:27:30

@ MagicBird

MQTT Mosquitto für PHP

> danke also muß das ganze ins www Ordner

Kann, muss aber nicht. Kommt darauf an was Du vor hast. PHP Skripten kannst Du ja auch ohne HTTP Server von der Kommandozeile aus nutzen.
Wichtig ist, dass per composer installierte Komponenten eines Projektes über diese autoload.php in diesem vendor Verzeichnis inkludiert werden.
Da das vendor Verzeichnis immer projektspezifisch ist soll es auch dort angelegt werden, wo das Projekt selber liegt.

#440044

MagicBird

Berlin,
08.07.2020, 09:45:35

@ Johann

MQTT Mosquitto für PHP

Guten morgen,

ja ich glaube verstanden zuhaben was du meinst. den als ich "sudo mc" und danach den Vendor ordner zum var/www/html/smarthome/ kopierte lief es trotzdem nicht.
Eben laß ich das der Composer ein php paketinstaller ist und auch die Berechtigungen erstellt.

Nun werde ich nach der Frühschicht mal zum smarthome Verzeichnis springen und dort einen erneuten Composer....ausführen.

danke Lars

#440047

MagicBird

Berlin,
08.07.2020, 11:53:55

@ MagicBird

MQTT Mosquitto für PHP

Das hat so nicht geklappt.

In das Verzeichnis springen "var/WWW/html"und dort Composer ausführen kam gleich eine Fehlemeldung.

Lars

#440062

MagicBird

Berlin,
09.07.2020, 18:44:45

@ Johann

MQTT Mosquitto für PHP

Hallo Johann,

egal was ich versuche aber es will irgendwie nicht funktionieren.

<?php

include("/home/pi/vendor/autoload.php");

$server = '192.168.5.100';
$port = '1883';
$clientId = 'test-publisher';

$mqtt = new MQTTClient($server, $port, $clientId);
$mqtt->connect();
$mqtt->subscribe('php-mqtt/client/test', function ($topic, $message) {
    echo sprintf("Received message on topic [%s]: %s\n", $topic, $message);
}, 0);
$mqtt->loop(true);

?>



aber es kommt nur ein Error 500
danke Lars

#440066

Johann

09.07.2020, 22:13:00

@ MagicBird

MQTT Mosquitto für PHP

> aber es kommt nur ein Error 500

Was steht im Webserver Logfile?

#440067

MagicBird

Berlin,
10.07.2020, 05:13:41

@ Johann

MQTT Mosquitto für PHP

> > aber es kommt nur ein Error 500
>
> Was steht im Webserver Logfile?

Ich fand in der /var/log/error.log
[Fri Jul 10 05:07:16.338448 2020] [php7:error] [pid 719] [client 192.168.5.213:51175] PHP Fatal error: Uncaught Error: Class 'MQTTClient' not found in /var/www/html/smarthome/mqtt_pub.php:9\nStack trace:\n#0 {main}\n thrown in /var/www/html/smarthome/mqtt_pub.php on line 9
[Fri Jul 10 05:09:53.117464 2020] [php7:error] [pid 715] [client 192.168.5.213:51217] PHP Fatal error: Uncaught Error: Class 'MQTTClient' not found in /var/www/html/smarthome/mqtt_pub.php:9\nStack trace:\n#0 {main}\n thrown in /var/www/html/smarthome/mqtt_pub.php on line 9

diese Zeilen.

Lars

#440068

MagicBird

Berlin,
10.07.2020, 08:09:35

@ Johann

MQTT Mosquitto für PHP

Ich wundere ich gerade woher die IP Adresse kommt.
Der OpenhabPI hat die ip .100 und der WebPI hat die IP .90

Lars

#440086

MagicBird

Berlin,
11.07.2020, 15:08:55
(editiert von MagicBird, 11.07.2020, 15:11:13)

@ Johann

MQTT Mosquitto für PHP (ed)

Hallo Johann,

vielen dank für deine Hilfe...
es läuft nun...

Ich fand auf der Git Seite ein Kommentar bereich, dort hatte jemand das gleiche Problem, der Autor hat darauf hin eine Lösung angegeben...

https://github.com/php-mqtt/client/issues/3

Nun sieht mein Script erst einmal so aus

<?php

require "vendor/autoload.php";

$server = '192.168.5.100';
$port = '1883';
$clientId = 'test-publisher';

//$mqtt = new MQTTClient($server, $port, $clientId);
$mqtt = new \PhpMqtt\Client\MQTTClient($server, $port, $clientId);
$mqtt->connect();
$mqtt->publish('php-mqtt/client/test', 'Hello World!', 0);
$mqtt->close();

?>



das wäre dann die gesendete Meldung
php-mqtt/client/test Hello World!

Nun muß ich mir das ganze noch in Ruhe ansehen und muß es mal anpassen.

vielen dank, Lars

#440089

Johann

12.07.2020, 09:29:09

@ MagicBird

MQTT Mosquitto für PHP

> Ich fand auf der Git Seite ein Kommentar bereich, dort hatte jemand das
> gleiche Problem, der Autor hat darauf hin eine Lösung angegeben...

Ok. Ich vergaß auch zu erwähnen, dass bei solchen Problemen oft der Kommentarbereich wo man die Software her bekam hilfreich ist. Probleme die man selber hat, hatten bestimmt schon andere vorher.

Ansicht:   
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz