Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Hoody B

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    H
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 3
    • Best 0
    • Groups 1

    Hoody B

    @Hoody B

    Starter

    0
    Reputation
    5
    Profile views
    3
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Hoody B Follow
    Starter

    Latest posts made by Hoody B

    • RE: Projekt "Playbox" MQTT, RFID, Login mit Username und PW

      @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 😞

      posted in Skripten / Logik
      H
      Hoody B
    • 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?

      posted in Skripten / Logik
      H
      Hoody B
    • 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???

      posted in Skripten / Logik
      H
      Hoody B
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo