Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Ankündigung
Einklappen
Keine Ankündigung bisher.
MQTT API Server und MQTT Clients - LBS19001051 - LBS19001054
zu 1) brauchst du nur, wenn deinen MQTT Broker von außen Zugreifbar machen willst oder wenn du einen Reverse Proxy (z.B. für Alexa, Spotify, Home-Connect) betreibst.
zu 2) Kann man machen, muss man aber nicht, wenn der MQTT Broker nur intern läuft. Wenn man es macht, dann kann man im Gegensatz zu 1) auch self-signed certificates verwenden. Gibts verschiedene Anleitungen dazu, z.B. HIER
zu 3) Brauch man für EDOMI nicht. Wenn du andere MQTT Clients (insbesondere im Browser) nutzt, die MQTT via Websockts verwenden, dann kann man das aktivieren. Eine gute Erklärung gibt es hier:
Da es meine SSD irgendwie zerlegt hatte, musste ich das System neu installieren. Das Backup von edomi hatte ich natürlich, aber das darunterliegende System ist jetzt also neu. Und jetzt habe ich Probleme mit den Bausteinen, weil der Mosquitto Client nicht gefunden wird, z.B.
Code:
Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19001052.php | Fehlercode: 1 | Zeile: 100 | Class 'Mosquitto\Client' not found FATALERROR
Bei der letzten Installation Mitte/Ende des letzten Jahres hatte ich das nicht soweit ich mich erinnern kann und es ist die gleiche CentOS Version
Code:
centos-release-7-6.1810.2.el7.centos.x86_64
Die Vorbereitungen, die im LBS 19001051 beschrieben sind habe ich durchgeführt
Mosquitto an sich ist installiert, obwohl ich gar nicht sicher bin, ob ich das gebraucht hätte, weil der Broker woanders läuft
Wenn ich die Nachinstallation der PHP Extension manuell von der Kommandozeile aus anstoße
Code:
yum -y install php-pecl-mosquitto.x86_64
bekomme ich die Nachricht, dass das Paket nicht gefunden wurde.
gibt es noch nicht, also wohl auch keine Logausgabe vom EXEC Teil. Die Logs der LBS 19001051 und 19001052 enthalten nur Debug Nachrichten
PHP Version ist 5.4.16
Edomi Version 2.03 (das Backup war von 2.02)
Die neuesten Versionen der Bausteine habe ich hochgeladen und das Projekt aktiviert
Den Server hab ich nach den Nachinstallationen auch mal neugestartet
Die Fehler, dass MosquittoClient nicht gefunden wird sind jetzt auch weg. In Modul 19001051 hab ich allerdings noch
Code:
Call to undefined method mysqli_result::fetch_all()
Die Leute auf Stackoverflow behaupten, dass das irgendwie damit zusammenhängt, dass die Extension/Treiber mysqldn nicht installiert ist und das Array auf andere Art und Weise aufzubauen ohnehin viel besser ist. https://stackoverflow.com/questions/...valid-function
Verstanden warum habe ich nicht, aber folgende Änderung funktioniert
Es gab während der Installation nicht viele Stellen, an denen ich hätte (falsch) abbiegen können und keine, wo PHP am Wegweiser stand. CentOS 7 wird wohl auch standardmäßig mit PHP 5.4 ausgeliefert. Ich lasse das jetzt erst mal so und behalte (hoffentlich) im Hinterkopf, dass ich bei LBS dann mal auf PHP 7 gehe.
Hast du denn nach der Installation von CentOS7 auch EDOMI per Installskript installiert oder hast du nur das EDOMI Backup wieder draufgespielt?
Wenn du letzteres gemacht hast, dann biste auf PHP5.4 gelandet und dadurch fehlt auch das remi-Repo, welches durch die EDOMI Installationsroutine installiert wird.
Es gab während der Installation nicht viele Stellen, an denen ich hätte (falsch) abbiegen können
Nicht viele, aber mindestens eine.
Nur CentOS7 zu installieren und dann ein EDOMI Backup einzuspielen reicht nicht. Das funktioniert bei einer kompletten Neuinstallation vermutlich noch nicht mal mit einem Projekt das vorher auf CentOS7 mit PHP7 lief, da die OS spezifischen Anpassungen, die das EDOMI Installskript macht, nicht ausgeführt werden.
Okay, ich wusste nicht, dass das Backup derartig gründlich ist... Aber selbst da hab ich den richtigen Weg erwischt :-)
Nach Installation von CentOS hab ich als nächstes das edomi Installationsskript ausgeführt (mit Option zwei, weiß nicht mehr genau wie das hieß, aber irgendwas mit lokal am Ende). Dann hab ich das Backup ins Backupverzeichnis kopiert und dann über die edomi Oberfläche die Wiederherstellung angestoßen
Okay, ich wusste nicht, dass das Backup derartig gründlich ist
Das lag dann nicht am Backup, denn PHP 5.4 ist wohl Standard bei CentOS7.
Erst das EDOMI Installationsskript macht das Update auf PHP7.2 und installiert das REMI-Repo.
Und da ist vermutlich was schiefgelaufen. Was weiß ich auch nicht, da auch die Option 2 die notwendigen CentOS7 Pakete installiert (also z.B. PHP7 und Remi-Repo)
Ich würde auf jeden Fall empfehlen das glatt zu ziehen, dass jetzt EDOMI wirklich mit PHP5.x läuft. Dann sonst wirst du auch mit vielen anderen LBS Probleme bekommen, die nur noch mit PHP7.x laufen.
Hab mal eine Frage zum MQTT Publish Client, wenn ich Topic und Payload zu IOBroker schicke schreibt er alles einwandfrei in das "Objekt" aber führt es nicht aus. Es geht nur wenn ich den umweg über z.b. NodeRed gehe und es dort von value in ein Command umwandel und dann ins "Objekt" schreibe. Kann ich irgendwie definieren ob der Publish Client ein Value schickt oder Command?
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar