I have an interesting problem:
I use mqtt and use it to control my home automation - it works wonderfully, but at some point the routine mqtt no longer works.
I think the code is easy:
Code: [Local Link Removed for Guests]
'================================================================================
modulname$ = "/Solarspeicher" ' Name des Moduls in mqtt
mqttIP$ = "xxx.xxx.xxx.xxx"
mqttuser$ = "yyyyyy"
mqttpassw$ = "zzzz"
' Eingänge und Ausgänge setzen
PIN.MODE 3, output ' GPIO 1 Relais-Ausgang
pin(3) = 0
print mqtt.setup(mqttIP$) ' Adresse des mqtt-Servers im iobroker - Port 1883
print mqtt.connect(mqttuser$, mqttpassw$) ' User und Passwort des mqtt-servers im iobroker
print mqtt.publish(modulname$ + "/0-life-state","Start") ' Lebenszeichen - iobroker sendet 0, System antwortet mit 1 (lebt)
print mqtt.subscribe(modulname$ ) ' Befehle abbonieren
print mqtt.subscribe(modulname$ + "/0-life-state") ' Lebenszeichen - iobroker sendet 0, System antwortet mit 1 (lebt)
print mqtt.subscribe(modulname$ + "/Zusatzlast")
' Eingänge und Ausgänge setzen
PIN.MODE 3, output ' GPIO 1 Relais-Ausgang
pin(3) = 0
onmqtt mqtt_befehl
OPTION.WDT 125000 ' 125 sek = 2 min watch dog .... danach reboot
wait
' ==============================
mqtt_befehl:
OPTION.WDTRESET ' watch dog timer zurücksetzen
if mqtt.topic$ = modulname$ + "/0-life-state" and mqtt.message$ = "0" then
print mqtt.publish(modulname$ + "/0-life-state",BAS.FILENAME$ + " läuft") ' Lebenszeichen - iobroker sendet 0, System antwortet mit 1 (lebt)
end if
if mqtt.topic$ = modulname$ + "/Zusatzlast" and mqtt.message$ = "1" then
pin(3) = 1
endif
if mqtt.topic$ = modulname$ + "/Zusatzlast" and mqtt.message$ = "0" then
pin(3) = 0
endif
return
'================================================================================
Is it possible that a stack overflows in the long term when mqtt is integrated?
Does somebody has any idea?
Josef Duisberg