MQTT GPIO
Guten Morgen,
weiß jemand wie es möglich ist, mit Repetier Server in der Pro Version einen GPIO zu schalten, und das über MQTT? Ist das irgendwie möglich, bzw. über welches Topic kann das realisiert werden?
Wäre toll wenn jemand da ne Idee hätte.
Gruß Patrick
weiß jemand wie es möglich ist, mit Repetier Server in der Pro Version einen GPIO zu schalten, und das über MQTT? Ist das irgendwie möglich, bzw. über welches Topic kann das realisiert werden?
Wäre toll wenn jemand da ne Idee hätte.
Gruß Patrick
Comments
@mqttSubscribe topic function
Subscribe to a topic and call the given function, when the value is published. For retained messages, the first message is received on subscription, so make sure to define the function before subscribing! The function gets called with the two parameters topic and payload.
Note: Often payloads are JSON encoded. You can use the json_ expression functions to access the contained values.
Der zeite Funktionsparameter ist ja der Wert und dann einfach je nach Wert gpio an oder aus schalten. Die funktion am besten in "Sende bei Druckeraktivierung" hinzufügen, den drucker deaktivieren und aktivieren damit sie ausgeführt wird. So läuft sie immer solange der Drucker aktiv ist egal ob er verbunden ist oder nicht.Gruß Patrick
Mit xxx gleich Pinname. Hast du ein Topic /trigger/meinpin und willst ihn mit 1 oder 0 schalten kannst du das ungefähr so machen:
@func SetSchalter topic data
@if {{local.data}}
@gpio "Schalter" on
@else
@gpio "Schalter" off
@endif
@endfunc
@mqttSubscribe "/trigger/meinpin" SetSchalter
Nicht getestet aber so sollte es denke ich gehen.
installDev
eingeben, dann bekommtst du die gefixte version.
Ansonsten habe ich
RepetierServer-6dbb6b22-7bc6-450a-a9cf-a9a3cb147e30/cmd/gcode/Demo
als Topic genutzt und als payload
@echo "Test Nachricht"
gesendet und es kam an. Hast du den Root topic auch korrekt gesetzt also RepetierServer-UUID ? Slug name wie er oben in der url steht verwendet?
Ja, ich nutze als root topic das topic wo auch die ganzen Statusparameter vom Repetier ankommen. Dort sollte ja cmd auch sein laut Doku.
Wo sollte echo ausgegeben werden? Im Webinterface? In der Konsole? Slug ist klar. Ich nutze ja zum Auslesen der Daten mit OpenHAB auch MQTT. Also habe ich eigentlich schon Erfahrung mit MQTT in Kombination mit Repetier Server. Nur würde ich auch gerne den Drucker einschalten können mit einem Befehl, und das am besten mit MQTT, da ich das in OpenHAB bereits implementiert habe.
Gruß Patrick
@echo gibt den Inhalt in der Konsole aus. Da siehst du auch wenn du Befehlsfilter ausschaltest ob ein Befehl empfangen wurde. Das war jetzt mein test weil ich keine Aktion auf meinen Pins habe. Ich hab das mit dem MQTT Explorer getestet. Damit kannst du auch sehen was so abgeht um das testweise zu überwachen.
In welcher Konsole? Im Webinterface oder direkt auf dem PI? Ja theoretisch gibt es ja nur diesen einen Schalter um die Befehle über MQTT auszuschalten, und dieser ist bei mir sicher aktiviert, sodass Befehle ausgeführt werden dürfen. Gibt es keine Möglichkeit mir das topic und den payload den ich da schicken muss zukommen zu lassen, der genau den PIN steuern sollte?
Bei mir scheint es so wie in der Doku, bzw. in diesem Thread nicht zu funktionieren. Über das Webinterface ohne Probleme, also GPIO an sich funktioniert. Und auch MQTT an sich funktioniert, ich bekomme ja die Statusdaten über MQTT an mein OpenHAB.
Gruß Patrick
RepetierServer-[uuid-server]/cmd/gcode/[slug]
und inhalt ist eine Textzeile, also kein json objekt. Nur die Zeile die ausgeführt werden soll.
Hast du mal MQTT Explorer installiert um das manuell mal dort zu senden oder zu sehen was OPenHAB sendet? Evtl. wird das ja auf dem weg modifiziert. EInfach mqtt explorer offen haben mit verbindung zu deinem mqtt Broker und du siehst alles was da hin und her geht.
Wenn ich den Befehl im Webinterface von Repetier in der Druckerkonsole als gcode sende, dann wird alles perfekt ausgeführt, odrt ohne Komma eingegeben. Mit Komma macht er nichts, ist ja dann theoretisch ein Kommentar.
Irgendwelche Ideen? Gibt es beim Repetierserver einen Log, wo man eventuell sehen kann was er per MQTT empfängt, bzw. ob er irgendwelche Fehler hat?
PS.: Wenn ich per MQTT Analyzer schaue, dann sehe ich auch dass OpenHAB das richtige sendet, also sollte das definitiv kein Problem sein.
Gruß