<prompt> Andika hati ya Python inayounganishwa na wakala wa MQTT, kujiandikisha kwa mada maalum, na kuweka kumbukumbu za ujumbe uliopokelewa katika hifadhidata ya SQLite. Hati inapaswa pia kuwa na uwezo wa kuchapisha ujumbe kwa mada sawa.PLINFORMAT  <response>: kuagiza sqlite3muda wa kuagizakutoka kwa mteja wa kuingiza wa paho.mqtt kama mqtt_client Mipangilio ya Broker ya MQTTwakala anwani_yako_mqtt_brokerbandari 1883mada mada_yako Mipangilio ya Hifadhidata ya SQLitedb_name mqtt_messages.dbdef on_connectmteja, data ya mtumiaji, bendera, rc: ikiwa rc 0: printImeunganishwa kwa Dalali wa MQTT! mteja.jiandikishemada kwingine: printfImeshindwa kuunganishwa, rudisha msimbo rcdef on_messagemteja, data ya mtumiaji, msg: ujumbe msg.payload.decode printfUjumbe uliopokelewa: ujumbe kutoka kwa mada: msg.topic save_to_dbmsg.mada, ujumbedef save_to_dbmada, ujumbe: conn sqlite3.connectdb_name mshale conn.cursor mshale.tekeleza TUNZA JEDWALI IKIWA ujumbe haupo id INTEGER PRIMARY Key OUTOINCREMENT, MAANDIKO ya mada SI UFUPI, MAANDISHI YA ujumbe SI UFUPI, muhuri wa muda DATETIME DEFAULT CURRENT_TIMESTAMP mshale.tekeleza INGIZA NDANI ya ujumbe mada, ujumbe THAMANI ?, ?, mada, ujumbe conn.commit conn.closedef publishmteja, mada, ujumbe: matokeo mteja.chapisha mada, ujumbe ikiwa matokeo0 0: printfUjumbe uliotumwa: ujumbe kwa mada: topic kwingine: printfImeshindwa kutuma ujumbe kwa mada: topicdef kuu : mteja mqtt_client.Client client.on_connect on_connect client.on_message on_message client.connectdalali, bandari Endesha kitanzi kwenye uzi tofauti client.loop_start wakati Kweli: wakati.lala1 message inputIngiza ujumbe ili kuchapisha: ikiwa message.lower toka: mapumziko chapisha mteja, mada, ujumbe client.loop_stopkama __name__ __main__: kuu 