@MCU ...leider ist das nicht das Problem - habe auch keinen sonoff installiert, trotzdem mal auf 1886 geändert, hatte aber nichts gebracht. Dachte diese Meldungen im ms-Takt wären vielleicht ein Hinweis
NEWS
Latest posts made by Hoody B
-
RE: Projekt "Playbox" MQTT, RFID, Login mit Username und PW
-
RE: Projekt "Playbox" MQTT, RFID, Login mit Username und PW
@MCU Danke für deine Antwort. Bin leider kein Code-Crack, sondern wollte eigentlich nur das fertige Script nutzen. Wo soll ich denn das Erste einfügen? Wie gesagt der Wifi-Connect funktioniert nur der Login auf den MQTT-Server Adapter nicht.
Ist es denn ein Unterschied, ob ich einen mosquitto auf dem Raspi "direkt" installiere oder auf mich über Adapter im iobroker auf den MQTT einlogen möchte? -
Projekt "Playbox" MQTT, RFID, Login mit Username und PW
Hallo, ich versuche gerade das Youtube-Projekt "Playbox" von Hausautomatisierung/M. Kleine nachzubauen: Spotify-Songs per RFID-Tags abspielen.
Statt fhem und mosquitto möchte ich allerdings den iobroker (und den mqtt-Adapter) auf dem Raspberry nutzen, da ich diese schon aufgesetzt habe.Das Script von M. Kleine sieht wie folgt aus:
#include <Arduino.h> #include <SPI.h> #include <MFRC522.h> #include <ESP8266WiFi.h> #include <WiFiClient.h> #include <PubSubClient.h> #define SS_PIN D8 #define RST_PIN D1 MFRC522 mfrc522(SS_PIN, RST_PIN); unsigned long cardId = 0; WiFiClient net; PubSubClient client(net); const char* mqtt_server = "192.168.44.11"; // WLAN name and pw const char* ssid = "myWLAN"; const char* password = "myPW"; void setup() { Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); WiFi.mode(WIFI_AP_STA); WiFi.begin(ssid, password); client.setServer(mqtt_server, 1883); } void reconnect() { while (WiFi.waitForConnectResult() != WL_CONNECTED) { WiFi.begin(ssid, password); } while (!client.connected()) { String clientId = "NodeMCUClient-"; clientId += String(random(0xffff), HEX); if (!client.connect(clientId.c_str(), "mymqttUsername", "mymqttPW")) { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); delay(5000); } } } void loop() { reconnect(); if (!mfrc522.PICC_IsNewCardPresent()) { return; } if (!mfrc522.PICC_ReadCardSerial()) { return; } cardId = getCardId(); Serial.print("New "); Serial.println(cardId); char buffer[10]; sprintf(buffer, "%lu", cardId); client.publish("/SmartHome/Interface/PlayBox/Play", buffer); uint8_t control = 0x00; do { control = 0; for (int i = 0; i < 3; i++) { if (!mfrc522.PICC_IsNewCardPresent()) { if (mfrc522.PICC_ReadCardSerial()) { control |= 0x16; } if (mfrc522.PICC_ReadCardSerial()) { control |= 0x16; } control += 0x1; } control += 0x4; } delay(0); } while (control == 13 || control == 14); reconnect(); Serial.println("Removed"); client.publish("/SmartHome/Interface/PlayBox/Stop", "1"); delay(500); mfrc522.PICC_HaltA(); mfrc522.PCD_StopCrypto1(); } unsigned long getCardId() { byte readCard[4]; for (int i = 0; i < 4; i++) { readCard[i] = mfrc522.uid.uidByte[i]; } return (unsigned long)readCard[0] << 24 | (unsigned long)readCard[1] << 16 | (unsigned long)readCard[2] << 8 | (unsigned long)readCard[3];
Über VSC/PlattformIO kann ich den Code kompilieren und übertragen.
Die Nodemcu meldet sich dann auch korrekt im WLAN an - sehe ich in der Fritzbox.Allerdings sehe ich keine topics unter Objekte/mqtt.
Statt dessen bekomme ich im Terminal von VSC/PlattformIO:
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
�HQȸ>dI��@>l�␒�failed, rc=-2 try again in 5 seconds
failed, rc=-2 try again in 5 seconds
failed, rc=-2 try again in 5 seconds
failed, rc=-2 try again in 5 seconds
...Im Log des iobrokers kommen Meldungen im Millisec.-Takt (auch wenn ich mit Arduino 1.8.13 die Nodemcu bespiele):
mqtt.0 2020-11-06 19:27:33.268 info (1360) send2Server system.adapter.mqtt.0.cputime[system/adapter/mqtt/0/cputime]
mqtt.0 2020-11-06 19:27:33.259 info (1360) send2Server system.adapter.mqtt.0.cpu[system/adapter/mqtt/0/cpu]
mqtt.0 2020-11-06 19:27:33.241 info (1360) send2Server mqtt.0.info.connection[info/connection]
mqtt.0 2020-11-06 19:27:33.238 info (1360) send2Server system.adapter.mqtt.0.cputime[system/adapter/mqtt/0/cputime]
mqtt.0 2020-11-06 19:27:33.228 info (1360) send2Server system.adapter.mqtt.0.cpu[system/adapter/mqtt/0/cpu]
mqtt.0 2020-11-06 19:27:33.209 info (1360) send2Server mqtt.0.info.connection[info/connection]Über mqtt.fx als client kann ich den mqtt-Server ohne Probleme mit den selben Zugangsdaten ansprechen und sehe die topics.
Habe keine Idee mehr wo ich den Fehler mache, aber irgendwas beim Login auf den mqtt scheint ja nicht zu passen
Hat vielleicht jemand eine Idee???