Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Hilfe bei MQTT mit ESP-01

    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

    Hilfe bei MQTT mit ESP-01

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      dondaik last edited by

      es bringt das nachdenken über die daten menge… drei temperaturen alle 6 sekunden ( was auch xx ist ) ok ... aber 3 x das gesamte paket in der zeit wäre zu viel ( für mich ) und da wäre dann auch die frage nach dem DC ...

      ps.: prg "lese" ich später..

      1 Reply Last reply Reply Quote 0
      • coyote
        coyote Most Active last edited by

        Ja das verstehe ich schon. Leider kenne ich mich zu wenig mit der Arduino Programmierung aus.

        Wäre gut super wenn du es dir mal anschauen könntest. Ich hab nur im ioBroker gesehen, dass die Raumtemperatur sich alle 6 Sekunden aktualisiert. Ich verstehe eben momentan nicht, warum es ne Stunde läuft und dann war es dass.

        Eigentlich sollten auch die ESP's sich wieder mit dem Broker verbinden, was sie auch nicht mehr machen. Im Netzwerk seh ich sie aber noch und es wird auch kein eigener Hotspot von den ESP's eröffnet.

        Laut Beschreibung des Entwicklers, sollte sich ein Hotspot eröffnen wenn kein Zugang zum WLAN vorliegt, das funktioniert auch wenn ich den ESP in meinem AP blocke. Und eigentlich sollte sich der ESP mit dem Broker wieder verbinden, wenn im WLAN eingeloggt und die MQTT Verbindung abgebrochen ist, macht er aber nicht.

        Edit: hier mal noch das zweite Sketch für den Mini pro

        /*
        ##############################################################################################################################################################################################
        MHI SPI2ESP Interface v1.0.0
        Arduino-based communication interface for Mitsubishi Heavy Industries (MHI) SRK/SRF series air conditioners.
        Connects to the MHI CNS connector and synchronizes to its Serial Peripheral Interface (SPI). Updates from the MHI are sent via serial to an ESP8266 running an MQTT client.
        Updates received on the ESP8266 via MQTT are sent to the Arduino over serial and injected into the SPI data frames to update the MHI.
        R.J. Dekker, June 2018
        ##############################################################################################################################################################################################
        */
        
        //#include <avr wdt.h="">                                                                                             //Watchdog for software reset: not working due to bootloader bug, but does not seem necessary anyway
        #include <easytransfer.h>                                                                                          //EasyTransfer v2.1 - Bill Porter: https://github.com/madsci1016/Arduino-EasyTransfer
        
        volatile byte state = 0;                                                                                           //'State machine' in loop(): [State=0] Priority is given to SPI interrupt to collect a full 20-byte SPI data frame. No other processing is allowed to keep in sync. [State=1] Pulse clock, set new/updated frames etc.. [State=2] Check for data received from ESP via serial
        volatile char bitfield = 0;                                                                                        //Bitfield position counter for sending (tx_SPIframe[]) and recceiving (rx_SPIframe[])
        byte variantnumber = 0;                                                                                            //Frame variation that is currently being sent (0, 1 or 2 in frameVariant[])
        byte framenumber = 1;                                                                                              //Counter for how many times a frame variation has been sent (max. = 48)
        
        bool updateESP = true;                                                                                             //Flag to ensure that an update is send to ESP only once every (repeatFrame x 2 x 3) SPI frames (~6 secs)
        bool checksumError = false;                                                                                        //Flag for checksum error in frame 2 or 47\. If two errors occur at both these positions in a single 48-frame cycle -> SPI sync lost -> resync SPI
        
        byte newMode     = 0;                                                                                              //Temporary storage of settings received from ESP
        byte newVanes    = 0;
        byte newFanspeed = 0;
        byte newSetpoint = 0;
        
        const byte rx_frameSignature[3] =  { 0x6C, 0x80, 0x04 };                                                           //SPI frame start signature: first 3 bytes in a full SPI data frame. Used to sync to MHI SPI data in SPI_sync() routine. Might be different on other unit types!
        
        //SPI frame that is currently being sent during the SPI interrupt routine. Contains base values that will be updated after the first 48-frame cycle with values received from MHI.
        //                         Bitfield:    1     2     3     4     5     6     7     8     9    10    11    12    13    14    15    16    17    18    19    20
        volatile byte tx_SPIframe[20]   =  { 0xA9, 0x00, 0x07, 0x4C, 0x00, 0x2A, 0xFF, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x0F, 0x04, 0x05, 0xF5 };
        
        volatile byte rx_SPIframe[20];                                                                                     //Array to collect a single frame of SPI data received from the MHI unit
        
        byte rx_bitfield4_10[7];                                                                                           //Array containing bitfields 4-10 from rx_SPIframe, which holds current MHI mode, vanes, fans speed, ambient temperature and setpoint
        
        //Alternating bitfield 10-18 variations, each successively send for 48 frames. Bit 3 in bitfield 18 functions as a clock and is 1 for 24 frames and 0 for the subsequent 24 frames. I have never seen bit fields 11-12 changing, so don't know what they are for.
        //                         Bitfield:   10    11    12    13    14    15    16    17    18
        const byte frameVariant[3][9]  {   { 0x40, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x0F, 0x04 },  //variant number 0
                                           { 0x80, 0x00, 0x00, 0x32, 0xD6, 0x01, 0x00, 0x0F, 0x04 },  //variant number 1
                                           { 0x80, 0x00, 0x00, 0xF1, 0xF7, 0xFF, 0xFF, 0x0F, 0x04 }   //variant number 2
                                       };
        
        //MODE bitmasks                            Bitfield #4
        const byte modeMask[8][2]      { //     CLEAR   |    SET
                                           { 0b00100010, 0b00000000 },  //0 = Unchanged (only clear 'write' bits)
                                           { 0b00100011, 0b00000010 },  //1 = OFF
                                           { 0b00111111, 0b00110011 },  //2 = HEAT
                                           { 0b00111111, 0b00101011 },  //3 = COOL
                                           { 0b00111111, 0b00100011 },  //4 = AUTO
                                           { 0b00111111, 0b00100111 },  //5 = DRY
                                           { 0b00111111, 0b00101111 },  //6 = FAN
                                           { 0b00100011, 0b00000011 }   //7 = ON (using last mode)
                                       };
        
        //VANES bitmasks                          Bitfield #4             Bitfield #5
        const byte vanesMask[6][4]     { //     CLEAR   |    SET        CLEAR   |    SET
                                           { 0b10000000, 0b00000000, 0b10000000, 0b00000000 },  //0 = Unchanged (only clear 'write' bits)
                                           { 0b11000000, 0b10000000, 0b10110000, 0b10000000 },  //1 = 1 (up)
                                           { 0b11000000, 0b10000000, 0b10110000, 0b10010000 },  //2 = 2
                                           { 0b11000000, 0b10000000, 0b10110000, 0b10100000 },  //3 = 3
                                           { 0b11000000, 0b10000000, 0b10110000, 0b10110000 },  //4 = 4 (down)
                                           { 0b11000000, 0b11000000, 0b10000000, 0b00000000 }   //5 = swing
                                       };
        
        //FANSPEED bitmasks                        Bitfield #5             Bitfield #10
        const byte fanspeedMask[5][4]  { //     CLEAR   |    SET        CLEAR   |    SET
                                           { 0b00001000, 0b00000000, 0b11011000, 0b00000000 },  //0 = Unchanged (only clear 'write' bits)
                                           { 0b00001111, 0b00001000, 0b11011000, 0b00000000 },  //1 = Speed 1
                                           { 0b00001111, 0b00001001, 0b11011000, 0b00000000 },  //2 = Speed 2
                                           { 0b00001111, 0b00001010, 0b11011000, 0b00000000 },  //3 = Speed 3
                                           { 0b00001111, 0b00001010, 0b11011000, 0b00010001 }   //4 = Speed 4
                                       };
        
        //Setup EasyTransfer
        EasyTransfer ETin, ETout;
        
        struct RECEIVE_DATA_STRUCTURE {                                                                                    //Variables received from ESP
          byte mode;                                                                                                       //Mode     [1]OFF, [2]HEAT, [3]COOL, [4]AUTO, [5]DRY, [6]FAN, [7]ON, [64]RESET
          byte vanes;                                                                                                      //Vanes   [1]UP,  [2]2,    [3]3,    [4]DOWN, [5]SWING
          byte fanspeed;                                                                                                   //Fanspeed  [1]1,   [2]2,    [3]3,    [4]4
          byte setpoint;                                                                                                   //Setpoint  [18]18 -> [30]30 degrees Celsius
        } __attribute__((packed));
        
        struct SEND_DATA_STRUCTURE {                                                                                       //Variable send to ESP
          byte currentMHI[8];                                                                                              //Contains bitfields last received from MHI for bitfields 4-10 (holding current settings for mode, vanes, fanspeed, setpoint and ambient temperature) and a SPI sync error count
        };
        
        RECEIVE_DATA_STRUCTURE  fromESP;
        SEND_DATA_STRUCTURE     toESP;
        
        //ROUTINES, SETUP and MAIN LOOP
        void setup (void)
        {
          delay(7000);                                                                                                     //Delay to allow ESP8266 to boot
        
          Serial.begin (500000);
          while(Serial.available()) Serial.read();                                                                         //Empty serial read buffer from possible junk send by ESP during boot
        
          //wdt_enable(WDTO_8S);                                                                                           //Start Watchdog Timer (WDT) to detect hang ups
        
          ETin.begin(details(fromESP), &Serial);                                                                           //Start the EasyTransfer library, pass in the data details and the name of the serial port
          ETout.begin(details(toESP), &Serial);
        
          pinMode(SCK, INPUT);
          pinMode(MISO, OUTPUT);
          SPCR = (0< <spie)|(0<<spe)|(1<<dord)|(0<<mstr)|(1<<cpol)|(1<<cpha); 1/18/19/20/configurate/spi/slave:/no/interrupts/(yet)/|/disable/hardware/lsb/first/slave/mode/sck/high/when/idle/data/valid/on/falling/edge/toesp.currentmhi[7]="0;" reset/checksum/resync/errors/spi_sync();/sync/to/master/(mosi)/wdt_reset();/watchdog/timer/}/end/of/setup/inline/bool/verify_checksum/(void)/routine/verify/a/received/frame./don't/care/pass/the/array/function,/because/it's/same/that/needs/be/checked/every/time./{/uint16_t/sum="0;" for/(int/bf="0;" </18;/bf++)/calculate/byte/frame/(sum/bytes/18)/+="rx_SPIframe[bf];" return/(rx_spiframe[18]="=" highbyte(sum)/&&/rx_spiframe[19]="=" lowbyte(sum));/msb/and/compare/with/20\./returns/true/if/is/correct./void/update_checksum/update/(byte/19)/20)./updated/by/summing/bitfield/-/tx_spiframe[18]="highByte(sum);" write/tx_spiframe[19]="lowByte(sum);" softwarereset(void)/(uint8_t/prescaler)/not/working/as/aspected/(bootloader/bug?)./revert/more/primitive/method./asm/volatile/("/jmp/0");/wdt_enable(prescaler);/start/provided/prescaler/while(1)/{}/spi_sync/spcr/&="~(1<<SPIE);" turn/off/during/syncing/memcpy(&tx_spiframe[9],/&framevariant[0][0],/9);/copy/(part/of)/next/current/sending/upcoming/clock/cycle/update_checksum();/recalculate/tx_spiframe/int/resyncattempts="0;" count/number/attempts./resyncing/doesn't/work="">restart system
        
          resync:
          //Finds the start of the first complete frame by looking for a signature.
          //When the first SPI transfer is started, the data sometimes starts in the middle of a frame
          //or out of sync with the SPI clock. This routine scans for the first 3 bytes as given
          //in rx_frameSignature[]. It then reads and discards the next 17 bytes before handing further
          //SPI data exchange to the interrupt routine ISR(SPI_STC_vect).
        
          //Serial.print("Syncing SPI to master...");
          int hits = 0;                                                                                                    //Number of times consecutive signature bytes have been encountered
          int cycle = 0;                                                                                                   //Stores number of bytes checked for signature. If too high -> SPI out of sync?
          byte r;                                                                                                          //Used to store read byte
        
          SPCR &= ~(1< <spe); 15/turn/off/spi/hardware/delay(15);/for/resyncs:/if/sync/is/lost/because/data/exhange/shifted/out/of/phase/a/few/bits,/then/waiting/msecs/should/end/up/somewhere/between/two/frames/-="">resync
          SPCR |= (1< <spe); turn/spi/hardware/back/on,/hopefully/in/sync/while(1)/{/if/(cycle++="">25)                                                                                            //If scan takes >25 SPI bytes -> SPI CLK out-of-sync -> reset SPI and try again
                {
                  if (resyncAttempts > 2)                                                                                  //Too many resync attempts -> restart system
                    {
                      resyncAttempts = 0;
                      //Serial.println("Too many SPI sync errors!");
                      //Serial.println("Restarting system...");
                      delay(500);
                      softwareReset();    //softwareReset(WDTO_60MS);                                                      //Restart using Watchdog Timer
                      delay(5000);
                    }
        
                  //Serial.println("SPI sync error!");
                  //Serial.println("Restarting SPI hardware...");
        
                  cycle = 0;                                                                                               //Signature took too long -> SPI bytes bit-shifted? -> 1st try = restart SPI
        
                  ++resyncAttempts;                                                                                        //Track number of resync attempts
                  goto resync;                                                                                             //Restart signature scan. Not very elegant, but it works.
                }
        
              hits = 0;
        
              do                                                                                                           //Scan for 3-byte signature
                {
                  SPDR = 0;                                                                                                //Send back zero for each read byte
                  while(!(SPSR & (1< <spif))) 3/{};/wait/for/new/byte/in/spi/data/register/r="SPDR;" read/from/}/while/(r="=" rx_framesignature[hits++]/&/hits/</3);/if/(hits="=" 3)/break;/a/row/-="">signature found!
            }
        
          for (int t = 0; t < 17; t++)                                                                                     //Discard the next 17 bytes after signature to skip to the start byte of the next frame
            {
              SPDR = 0;
              while(!(SPSR & (1< <spif))) {};/r="SPDR;" }/reset/counters/and/state/for/resyncs/variantnumber="0;" framenumber="1;" bitfield="0;" checksumerror="false;" spdr="tx_SPIframe[0];" prepare/spi/data/register/(spdr)/to/send/1st/byte/of/frame/on/interrupt/serial.println("synced!");/spcr/|="(1<<SPIE);" turn/interrupts/end/routine/spi_sync/isr/(spi_stc_vect)/{/routine:/this/is/triggered/when/a/read/write/has/just/occurred./the/that/needs/be/sent/should/already/in/called./therefore/done/before/ends./rx_spiframe[bitfield]="SPDR;" new/from/(mosi)./previously/written/simultaneously/(miso)./if/(bitfield="=" 19)/completely/sent,/switch/next/(processing/frames,/sending/reveiving/esp)/else/increase/position/counter/setup/spi_stc_vect/void/loop/(void)/wdt_reset();/watchdog/timer./readingframe/takes/too/long/-="">SPI signal lost -> restart system and resync
        
          switch (state)
            {
              case 0:                                                                                                      //<<<state 0="">>> Do nothing (wait until a complete SPI frame has been send/received)
        
                break;
        
              case 1:                                                                                                      //<<<state 1="">>> Complete frame send/received -> decide what to do based on current frame number (out of 48)
                switch (framenumber)
                  {
                    case 2:                                                                                                // Verify checksum on SPI frame that was just received and send to ESP8266 if correct
                      if (verify_checksum())                                                                               //Verify checksum
                        {
                          if (variantnumber == 1 || updateESP)                                                             //Send updated MHI settings to ESP9288 in the 10th SPI frame repeat of frame 2 out of 3 (every ~6 seconds) or immediately after a new setting was sent to the MHI
                            {
                              memcpy(&toESP.currentMHI, &rx_SPIframe[3], 7);                                               //Copy bitfields 4-10 from the most recent MHI SPI frame to new array for sending to ESP
                              ETout.sendData();                                                                            //Send to ESP using EasyTransfer.
        
                              updateESP = false;                                                                           //Uncheck flag to send update only once
                            }
        
                          checksumError = false;
                        }
                      else
                        {
                          if (checksumError)                                                                               //If true then the previous checksum at frame 47 was also wrong -> SPI sync lost? -> resync
                            {
                              toESP.currentMHI[7]++;                                                                       //Count resyncs triggered by consecutive checksum errors and send to ESP for debugging
                              updateESP = true; SPI_sync(); return;
                            }
        
                          checksumError = true;
                          updateESP     = true;
                        }
        
                      state = 0;
                      break;                                                                                               //Start from beginning of loop() and wait for next complete SPI frame
        
                    case 24:                                                                                               // Current frame variation has been sent 24 times -> clear clock bit in bit field 18 for the next 24 frames
                      bitClear(tx_SPIframe[17], 2);                                                                        //Clear clock bit 3 in bitfield 18-> update checksum and resend for 24 cycles
                      update_checksum();                                                                                   //Recalculate checksum of tx_SPIframe
        
                      state = 0;
                      break;                                                                                               //Start from beginning of loop() and wait for next complete SPI frame
        
                    case 47:                                                                                               // Collect the most recent bit fields 4-10 for constructing an updated tx_SPIframe after the upcoming frame (48)
                      if (verify_checksum())                                                                               //Verify checksum
                        {
                          memcpy(&rx_bitfield4_10, &rx_SPIframe[3], 7);                                                    //Get bitfields 4-10 from the last MHI SPI frame to use for the upcoming tx_SPIframe update
                          checksumError = false;
                        }
                      else
                        {
                          if (checksumError)                                                                               //If true then the previous checksum at frame 2 was also wrong -> SPI sync lost? -> resync
                            {
                              toESP.currentMHI[7]++;                                                                       //Count resyncs triggered by consecutive checksum errors and send to ESP for debugging
                              updateESP = true; SPI_sync(); return;
                            }
        
                          checksumError = true;
                        }
        
                      state = 0;
                      break;
        
                    case 48:                                                                                               // Current frame variation has been send 48 times -> construct next frame variant using most recent bit fields 4-10 collected in frame 47
                      framenumber = 0;                                                                                     //Reset repeat frame counter
        
                      if (++variantnumber > 2) variantnumber = 0;                                                          //Increase frame counter -> test if all 3 frames sent -> restart with frame 1
        
                      memcpy(&tx_SPIframe[9], &frameVariant[variantnumber][0], 9);                                         //Copy (part of) the next frame to the current frame for sending on the upcoming bitfield 18 clock cycle
        
                      //******************* CONSTRUCTION OF UPDATED BIT FIELDS *******************
                      //Set 'state change' bits and 'write' bits if MQTT update received from ESP
                      //otherwise only clear 'write' bits using masks from the xxxMask[0][] arrays
                      //Bitfields 4, 5, 6, 10 are based on the last received MHI values (frame 47)
                      tx_SPIframe[3]  =  rx_bitfield4_10[0] & ~modeMask[newMode][0];                                       //Clear mode bits (bitfield 4)
                      tx_SPIframe[3] |=  modeMask[newMode][1];                                                             //Set mode bits
        
                      tx_SPIframe[3] &= ~vanesMask[newVanes][0];                                                           //Clear vanes bits (bitfield 4)
                      tx_SPIframe[3] |=  vanesMask[newVanes][1];                                                           //Set vanes bits
        
                      tx_SPIframe[4]  =  rx_bitfield4_10[1] & ~vanesMask[newVanes][2];                                     //Clear vanes bits (bitfield 5)
                      tx_SPIframe[4] |=  vanesMask[newVanes][3];                                                           //Set vanes bits
        
                      tx_SPIframe[4] &= ~fanspeedMask[newFanspeed][0];                                                     //Clear fanspeed bits (bitfield 5)
                      tx_SPIframe[4] |=  fanspeedMask[newFanspeed][1];                                                     //Set fanspeed bits
        
                      bitWrite(rx_bitfield4_10[6], 0, bitRead(rx_bitfield4_10[6], 6));                                     //Copy bit 7 from rx_SPIframe[9] to bit 1 as the status bits for fan speed 4 appear to be swapped (!?) between MISO and MOSI
                      tx_SPIframe[9] &=  ~0b00111111;                                                                      //Clear bits 1-6 and keep variant bits 7-8
        
                      tx_SPIframe[9] |=  (rx_bitfield4_10[6] & ~fanspeedMask[newFanspeed][2]);
                      tx_SPIframe[9] |=  fanspeedMask[newFanspeed][3];                                                     //Set fanspeed bits
        
                      //Construct setpoint bitfield (#6) from last MHI value or MQTT update
                      if (newSetpoint == 0)
                        {
                          tx_SPIframe[5] = rx_bitfield4_10[2] & ~0b10000000;                                               //Copy last received MHI setpoint and clear the write bit
                        }
                      else
                        {
                          tx_SPIframe[5] = (newSetpoint << 1) | 0b10000000;                                                //MQTT updated setpoint in degrees Celsius -> shift 1 bit left and set write bit (#8)
                        }
        
                      update_checksum();                                                                                   //Recalculate checksum of tx_SPIframe
        
                      //Reset all state changes
                      newMode     = 0;
                      newVanes    = 0;
                      newFanspeed = 0;
                      newSetpoint = 0;
        
                      state = 0;
                      break;                                                                                               //Start from beginning of loop() and wait for next complete SPI frame.
        
                    default:
                      state = 2;                                                                                           //Use time (~30 ms) until next frame for receiving commands from ESP
                  }
        
                framenumber++;                                                                                             //Increase repeat counter to keep track of the number of times the current frame has been sent
        
              case 2:                                                                                                      //<<<state 2="">>> Check once if data received from ESP via serial (EasyTransfer)
                if (ETin.receiveData())
                  {
                    delay(1);                                                                                              //Delay to allow fromESP.xxx to be updated
                    if (fromESP.mode == 64)   softwareReset();  //softwareReset(WDTO_60MS);                                //Requested reset by ESP8266 via MQTT service topic (bitfield = 32 received)
        
                    //Store new commands received from ESP in newXXX, but only if not equal to zero
                    //to prevent cancellation of previous commands that have not been send yet
                    newMode     = (fromESP.mode > 0) ? fromESP.mode : newMode;
                    newVanes    = (fromESP.vanes > 0) ? fromESP.vanes : newVanes;
                    newFanspeed = (fromESP.fanspeed > 0) ? fromESP.fanspeed : newFanspeed;
                    newSetpoint = (fromESP.setpoint > 0) ? fromESP.setpoint : newSetpoint;
        
                    updateESP = true;                                                                                      //Flag for MHI status feedback: get an MHI update after frame number 2 and send it to the ESP for updating status of the MQTT topics
                  }
        
                state = 0;                                                                                                 //Check for serial data once between every SPI frame (approx. every 40 ms). If this is done continuously in the loop and/or after the calculations done on frames 2, 24, 47, 48, then SPI sync can be lost.
                break;
        
            }  //End switch..case
        
        }    //End of loop</state></state></state></spif)))></spif)))></spe);></spe);></spie)|(0<<spe)|(1<<dord)|(0<<mstr)|(1<<cpol)|(1<<cpha);></easytransfer.h></avr>
        
        1 Reply Last reply Reply Quote 0
        • coyote
          coyote Most Active last edited by

          Ähm, könnte die Maske vllt schon mein Problem sein? Befeuert der Broker dann die Clients mit allem was er kennt?
          536_mqtt.png

          Habe jetzt mal die Maske auf mqtt.0.* geändert, heute Mittag dann ein neuer Versuch

          1 Reply Last reply Reply Quote 0
          • D
            dondaik last edited by

            so, wie ich es auf die schnelle sehe wird alles "bei änderung" gesendet …. und dann ist es schon etwas heftig ( aus meiner sicht )

            ggf mal einen slave - iobroker nur mit mqtt für die klimageräte aufsetzten und testen ...

            1 Reply Last reply Reply Quote 0
            • coyote
              coyote Most Active last edited by

              Genau, das hab ich mir auch gerade gedacht. Das erklärt auch die hunderte von logeinträge von mqtt, wenn er auf debug steht

              Gesendet von meinem ONEPLUS A6013 mit Tapatalk

              1 Reply Last reply Reply Quote 0
              • coyote
                coyote Most Active last edited by

                @dondaik:

                ggf mal einen slave - iobroker nur mit mqtt für die klimageräte aufsetzten und testen … `
                Ich probiere später mal mit der Maske, da ich sonst eh momentan nichts am MQTT Adapter dran hab.

                Ja ok, könnte ich auch noch ausprobieren, einfach mal nen Raspi oder ne VM auf dem NUC als Slave

                1 Reply Last reply Reply Quote 0
                • coyote
                  coyote Most Active last edited by

                  Habe gerade nochmal von vorne angefangen.

                  So wie es aussieht hat er irgendwann den MQTT Adapter abgeschossen und dann verbinden sich die Clients nicht mehr, warum sie sich nicht mehr verbinden weiß ich leider nicht.

                  hier ein Teil des Logs bis zum Abschuss:

                  2019-02-08 17:37:46.815  - [34mdebug[39m: mqtt.0 onStateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":"MHI2MQTT connected to MQTT broker at 192.168.66.68:1883","ack":true,"ts":1549643866804,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549643866804}
                  2019-02-08 17:37:46.822  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 293
                  2019-02-08 17:37:46.823  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 292
                  2019-02-08 17:37:46.823  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 291
                  2019-02-08 17:37:46.823  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 290
                  2019-02-08 17:37:46.824  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 289
                  2019-02-08 17:37:46.824  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 288
                  2019-02-08 17:37:46.824  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 295
                  2019-02-08 17:37:46.824  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 294
                  2019-02-08 17:37:46.827  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 293
                  2019-02-08 17:37:46.827  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 292
                  2019-02-08 17:37:46.827  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 295
                  2019-02-08 17:37:46.827  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 294
                  2019-02-08 17:37:46.828  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 293
                  2019-02-08 17:37:46.828  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 292
                  2019-02-08 17:37:46.831  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 291
                  2019-02-08 17:37:46.832  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 290
                  2019-02-08 17:37:46.832  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 289
                  2019-02-08 17:37:46.832  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 288
                  2019-02-08 17:37:46.832  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 295
                  2019-02-08 17:37:46.832  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 294
                  2019-02-08 17:37:46.840  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.statusRoomtemp: {"val":21.75,"ack":true,"ts":1549643866816,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549643866816}
                  2019-02-08 17:37:46.841  - [34mdebug[39m: mqtt.0 onStateChange mqtt.0.Kinderzimmer.Klimaanlage.statusRoomtemp: {"val":21.75,"ack":true,"ts":1549643866816,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549643866816}
                  2019-02-08 17:37:46.848  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549643866818,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549643866818}
                  2019-02-08 17:37:46.850  - [34mdebug[39m: mqtt.0 onStateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549643866818,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549643866818}
                  2019-02-08 17:37:46.850  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549643866818,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549643866818}
                  2019-02-08 17:37:46.850  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549643866820,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549643866818}
                  2019-02-08 17:37:46.850  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549643866820,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549643866818}
                  2019-02-08 17:37:46.850  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549643866820,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549643866818}
                  2019-02-08 17:37:46.857  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549643866848,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549643866818}
                  2019-02-08 17:37:46.875  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549643866852,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549643866818}
                  2019-02-08 17:37:46.875  - [34mdebug[39m: mqtt.0 onStateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549643866852,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549643866818}
                  2019-02-08 17:37:46.875  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549643866853,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549643866818}
                  2019-02-08 17:37:46.881  - [34mdebug[39m: mqtt.0 Create object for topic: Kinderzimmer/Kli@$@#@"@[ID: mqtt.0.Kinderzimmer.Kli@$@#@"@]
                  2019-02-08 17:37:46.881  - [33mwarn[39m: mqtt.0 Used invalid characters: mqtt.0.Kinderzimmer.Kli@$@#@"@ changed to mqtt.0.Kinderzimmer.Kli@$@#@_@
                  2019-02-08 17:37:46.895  - [33mwarn[39m: mqtt.0 Used invalid characters: mqtt.0.Kinderzimmer.Kli@$@#@"@ changed to mqtt.0.Kinderzimmer.Kli@$@#@_@
                  2019-02-08 17:37:46.900  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Kli@$@#@_@: {"val":"\u0001!@\u0002\u0001 @\u0002\u0001'@\u0002\u0001&1>\u0000\u001eKinderzimmer","ack":true,"ts":1549643866897,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549643866897}
                  2019-02-08 17:37:46.900  - [34mdebug[39m: mqtt.0 onStateChange mqtt.0.Kinderzimmer.Kli@$@#@_@: {"val":"\u0001!@\u0002\u0001 @\u0002\u0001'@\u0002\u0001&1>\u0000\u001eKinderzimmer","ack":true,"ts":1549643866897,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549643866897}
                  2019-02-08 17:37:46.908  - [34mdebug[39m: mqtt.0 Client [MHI Schlafzimmer] Resend message topic: Schlafzimmer/Klimaanlage/service, payload: null
                  2019-02-08 17:37:46.919  - [34mdebug[39m: mqtt.0 Client [MHI Schlafzimmer] Resend message topic: Schlafzimmer/Klimaanlage/Fanspeed, payload: null
                  2019-02-08 17:37:46.929  - [34mdebug[39m: mqtt.0 Client [MHI Schlafzimmer] Resend message topic: Schlafzimmer/Klimaanlage/Vanes, payload: null
                  2019-02-08 17:37:46.940  - [34mdebug[39m: mqtt.0 Client [MHI Schlafzimmer] Resend message topic: Schlafzimmer/Klimaanlage/State, payload: null
                  2019-02-08 17:37:46.951  - [34mdebug[39m: mqtt.0 Client [MHI Schlafzimmer] Resend message topic: Schlafzimmer/Klimaanlage/service, payload: null
                  2019-02-08 17:37:48.520  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 26989
                  2019-02-08 17:37:48.523  - [31merror[39m: mqtt.0 uncaught exception: Cannot read property 'topic' of undefined
                  2019-02-08 17:37:48.524  - [31merror[39m: mqtt.0 TypeError: Cannot read property 'topic' of undefined
                      at receivedTopic (/opt/iobroker/node_modules/iobroker.mqtt/lib/server.js:406:32)
                      at Connection.client.on.packet (/opt/iobroker/node_modules/iobroker.mqtt/lib/server.js:820:21)
                      at emitOne (events.js:116:13)
                      at Connection.emit (events.js:211:7)
                      at Connection.emitPacket (/opt/iobroker/node_modules/iobroker.mqtt/node_modules/mqtt-connection/connection.js:10:8)
                      at emitOne (events.js:116:13)
                      at Connection.emit (events.js:211:7)
                      at addChunk (/opt/iobroker/node_modules/iobroker.mqtt/node_modules/readable-stream/lib/_stream_readable.js:291:12)
                      at readableAddChunk (/opt/iobroker/node_modules/iobroker.mqtt/node_modules/readable-stream/lib/_stream_readable.js:278:11)
                      at Connection.Readable.push (/opt/iobroker/node_modules/iobroker.mqtt/node_modules/readable-stream/lib/_stream_readable.js:245:10)
                  2019-02-08 17:37:48.524  - [34mdebug[39m: mqtt.0 Old client MHI Kinderzimmer with secret 1549643217875_4556 sends subscribe. Ignore! Actual secret is 1549643836068_3879
                  2019-02-08 17:37:49.026  - [32minfo[39m: mqtt.0 terminating
                  2019-02-08 17:37:49.046  - [31merror[39m: Caught by controller[0]: TypeError: Cannot read property 'topic' of undefined
                  2019-02-08 17:37:49.047  - [31merror[39m: Caught by controller[0]:     at receivedTopic (/opt/iobroker/node_modules/iobroker.mqtt/lib/server.js:406:32)
                  2019-02-08 17:37:49.047  - [31merror[39m: Caught by controller[0]:     at Connection.client.on.packet (/opt/iobroker/node_modules/iobroker.mqtt/lib/server.js:820:21)
                  2019-02-08 17:37:49.047  - [31merror[39m: Caught by controller[0]:     at emitOne (events.js:116:13)
                  2019-02-08 17:37:49.047  - [31merror[39m: Caught by controller[0]:     at Connection.emit (events.js:211:7)
                  2019-02-08 17:37:49.047  - [31merror[39m: Caught by controller[0]:     at Connection.emitPacket (/opt/iobroker/node_modules/iobroker.mqtt/node_modules/mqtt-connection/connection.js:10:8)
                  2019-02-08 17:37:49.047  - [31merror[39m: Caught by controller[0]:     at emitOne (events.js:116:13)
                  2019-02-08 17:37:49.047  - [31merror[39m: Caught by controller[0]:     at Connection.emit (events.js:211:7)
                  2019-02-08 17:37:49.047  - [31merror[39m: Caught by controller[0]:     at addChunk (/opt/iobroker/node_modules/iobroker.mqtt/node_modules/readable-stream/lib/_stream_readable.js:291:12)
                  2019-02-08 17:37:49.047  - [31merror[39m: Caught by controller[0]:     at readableAddChunk (/opt/iobroker/node_modules/iobroker.mqtt/node_modules/readable-stream/lib/_stream_readable.js:278:11)
                  2019-02-08 17:37:49.047  - [31merror[39m: Caught by controller[0]:     at Connection.Readable.push (/opt/iobroker/node_modules/iobroker.mqtt/node_modules/readable-stream/lib/_stream_readable.js:245:10)
                  2019-02-08 17:37:49.047  - [31merror[39m: host.debian instance system.adapter.mqtt.0 terminated with code 0 (OK)
                  2019-02-08 17:37:49.047  - [32minfo[39m: host.debian Restart adapter system.adapter.mqtt.0 because enabled
                  
                  

                  Jetzt sieht es so aus:

                  mqtt.0	2019-02-08 19:44:58.723	debug	onStateChange mqtt.0.Wintergarten.Klimaanlage.statusRoomtemp: {"val":20.25,"ack":true,"ts":1549651498720,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549651498720}
                  mqtt.0	2019-02-08 19:44:58.722	debug	stateChange mqtt.0.Wintergarten.Klimaanlage.statusRoomtemp: {"val":20.25,"ack":true,"ts":1549651498720,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549651498720}
                  mqtt.0	2019-02-08 19:44:57.012	debug	Client [MHI Kinderzimmer] pingreq
                  mqtt.0	2019-02-08 19:44:53.069	debug	onStateChange mqtt.0.Wintergarten.Klimaanlage.statusRoomtemp: {"val":19.75,"ack":true,"ts":1549651493066,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549651493066}
                  mqtt.0	2019-02-08 19:44:53.069	debug	stateChange mqtt.0.Wintergarten.Klimaanlage.statusRoomtemp: {"val":19.75,"ack":true,"ts":1549651493066,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549651493066}
                  mqtt.0	2019-02-08 19:44:52.738	debug	onStateChange mqtt.0.Kinderzimmer.Klimaanlage.statusRoomtemp: {"val":22.5,"ack":true,"ts":1549651492736,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549651492736}
                  mqtt.0	2019-02-08 19:44:52.738	debug	stateChange mqtt.0.Kinderzimmer.Klimaanlage.statusRoomtemp: {"val":22.5,"ack":true,"ts":1549651492736,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549651492736}
                  mqtt.0	2019-02-08 19:44:47.935	debug	Client [MHI Wintergarten] pingreq
                  mqtt.0	2019-02-08 19:44:47.411	debug	onStateChange mqtt.0.Wintergarten.Klimaanlage.statusRoomtemp: {"val":20,"ack":true,"ts":1549651487408,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549651487408}
                  mqtt.0	2019-02-08 19:44:47.411	debug	stateChange mqtt.0.Wintergarten.Klimaanlage.statusRoomtemp: {"val":20,"ack":true,"ts":1549651487408,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549651487408}
                  mqtt.0	2019-02-08 19:44:47.012	debug	onStateChange mqtt.0.Kinderzimmer.Klimaanlage.statusRoomtemp: {"val":22.75,"ack":true,"ts":1549651487009,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549651487009}
                  mqtt.0	2019-02-08 19:44:47.012	debug	stateChange mqtt.0.Kinderzimmer.Klimaanlage.statusRoomtemp: {"val":22.75,"ack":true,"ts":1549651487009,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549651487009}
                  mqtt.0	2019-02-08 19:44:41.851	debug	Client [MHI Kinderzimmer] pingreq
                  

                  Soweit so gut, mal abwarten wie lange es so läuft.

                  @dondaik

                  Du kannst mir nicht zufällig erklären, warum die Clients nach dem disconnect sich nicht mehr verbinden? Das sollten sie laut Anleitung eigentlich tun. Mit dem WLAN AP sind sie immer noch verbunden.

                  Werde morgen das Schlafzimmer auch nochmal einbinden. Mal schauen wie lange Wintergarten und Kinderzimmer verbunden bleiben….

                  1 Reply Last reply Reply Quote 0
                  • coyote
                    coyote Most Active last edited by

                    Leider gleiches Spiel, nach ca. 2 Stunden, MQTT Adapter abgeschossen.

                    Hier mal das Log dazu. Seltsam, dass der ESP vom Wintergarten wohl einwandfrei funktioniert.

                    `2019-02-08 21:59:47.203  - [34mdebug[39m: mqtt.0 Old client MHI Kinderzimmer with secret 1549658282049_8121 sends pingreq. Ignore! Actual secret is 1549659558610_1868
                    2019-02-08 21:59:47.203  - [34mdebug[39m: mqtt.0 Old client MHI Kinderzimmer with secret 1549658282049_8121 sends publish. Ignore! Actual secret is 1549659558610_1868
                    2019-02-08 21:59:47.203  - [34mdebug[39m: mqtt.0 Old client MHI Kinderzimmer with secret 1549658282049_8121 sends publish. Ignore! Actual secret is 1549659558610_1868
                    2019-02-08 21:59:47.203  - [34mdebug[39m: mqtt.0 Old client MHI Kinderzimmer with secret 1549658282049_8121 sends puback. Ignore! Actual secret is 1549659558610_1868
                    2019-02-08 21:59:47.203  - [34mdebug[39m: mqtt.0 Old client MHI Kinderzimmer with secret 1549658282049_8121 sends puback. Ignore! Actual secret is 1549659558610_1868
                    2019-02-08 21:59:47.203  - [34mdebug[39m: mqtt.0 Old client MHI Kinderzimmer with secret 1549658282049_8121 sends puback. Ignore! Actual secret is 1549659558610_1868
                    2019-02-08 21:59:47.203  - [34mdebug[39m: mqtt.0 Old client MHI Kinderzimmer with secret 1549658282049_8121 sends puback. Ignore! Actual secret is 1549659558610_1868
                    2019-02-08 21:59:47.203  - [34mdebug[39m: mqtt.0 Old client MHI Kinderzimmer with secret 1549658282049_8121 sends puback. Ignore! Actual secret is 1549659558610_1868
                    2019-02-08 21:59:47.203  - [34mdebug[39m: mqtt.0 Old client MHI Kinderzimmer with secret 1549658282049_8121 sends puback. Ignore! Actual secret is 1549659558610_1868
                    2019-02-08 21:59:47.203  - [34mdebug[39m: mqtt.0 Old client MHI Kinderzimmer with secret 1549658282049_8121 sends puback. Ignore! Actual secret is 1549659558610_1868
                    2019-02-08 21:59:47.203  - [34mdebug[39m: mqtt.0 Old client MHI Kinderzimmer with secret 1549658282049_8121 sends puback. Ignore! Actual secret is 1549659558610_1868
                    2019-02-08 21:59:47.204  - [34mdebug[39m: mqtt.0 Old client MHI Kinderzimmer with secret 1549658282049_8121 sends puback. Ignore! Actual secret is 1549659558610_1868
                    2019-02-08 21:59:47.204  - [34mdebug[39m: mqtt.0 Old client MHI Kinderzimmer with secret 1549658282049_8121 sends puback. Ignore! Actual secret is 1549659558610_1868
                    2019-02-08 21:59:47.204  - [34mdebug[39m: mqtt.0 Old client MHI Kinderzimmer with secret 1549658282049_8121 sends puback. Ignore! Actual secret is 1549659558610_1868
                    2019-02-08 21:59:47.204  - [34mdebug[39m: mqtt.0 Old client MHI Kinderzimmer with secret 1549658282049_8121 sends publish. Ignore! Actual secret is 1549659558610_1868
                    2019-02-08 21:59:47.204  - [34mdebug[39m: mqtt.0 Old client MHI Kinderzimmer with secret 1549658282049_8121 sends publish. Ignore! Actual secret is 1549659558610_1868
                    2019-02-08 21:59:47.635  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Wintergarten.Klimaanlage.statusRoomtemp: {"val":19.5,"ack":true,"ts":1549659587633,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549659587633}
                    2019-02-08 21:59:47.635  - [34mdebug[39m: mqtt.0 onStateChange mqtt.0.Wintergarten.Klimaanlage.statusRoomtemp: {"val":19.5,"ack":true,"ts":1549659587633,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549659587633}
                    2019-02-08 21:59:47.647  - [34mdebug[39m: mqtt.0 Client [MHI Wintergarten]  pingreq
                    2019-02-08 21:59:48.012  - [34mdebug[39m: mqtt.0 Client [MHI Kinderzimmer] Resend message topic: Kinderzimmer/Klimaanlage/State, payload: null
                    2019-02-08 21:59:48.023  - [34mdebug[39m: mqtt.0 Client [MHI Kinderzimmer] Resend message topic: Kinderzimmer/Klimaanlage/Setpoint, payload: null
                    2019-02-08 21:59:49.276  - [32minfo[39m: mqtt.0 Client [MHI Kinderzimmer] subscribes on "mqtt.0.Kinderzimmer.Klimaanlage.State"
                    2019-02-08 21:59:49.276  - [32minfo[39m: mqtt.0 Client [MHI Kinderzimmer] publishOnSubscribe
                    2019-02-08 21:59:49.276  - [32minfo[39m: mqtt.0 Client [MHI Kinderzimmer] subscribes on "mqtt.0.Kinderzimmer.Klimaanlage.Vanes"
                    2019-02-08 21:59:49.276  - [32minfo[39m: mqtt.0 Client [MHI Kinderzimmer] publishOnSubscribe
                    2019-02-08 21:59:49.277  - [32minfo[39m: mqtt.0 Client [MHI Kinderzimmer] subscribes on "mqtt.0.Kinderzimmer.Klimaanlage.Fanspeed"
                    2019-02-08 21:59:49.277  - [32minfo[39m: mqtt.0 Client [MHI Kinderzimmer] publishOnSubscribe
                    2019-02-08 21:59:49.277  - [32minfo[39m: mqtt.0 Client [MHI Kinderzimmer] subscribes on "mqtt.0.Kinderzimmer.Klimaanlage.service"
                    2019-02-08 21:59:49.277  - [32minfo[39m: mqtt.0 Client [MHI Kinderzimmer] publishOnSubscribe
                    2019-02-08 21:59:49.280  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":"MHI2MQTT connected to MQTT broker at 192.168.66.68:1883","ack":true,"ts":1549659589278,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549659552355}
                    2019-02-08 21:59:49.282  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 93
                    2019-02-08 21:59:49.282  - [34mdebug[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for MHI Kinderzimmer message ID: 88
                    2019-02-08 21:59:49.282  - [34mdebug[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for MHI Kinderzimmer message ID: 89
                    2019-02-08 21:59:49.282  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 90
                    2019-02-08 21:59:49.282  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 91
                    2019-02-08 21:59:49.283  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 92
                    2019-02-08 21:59:49.283  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 93
                    2019-02-08 21:59:49.284  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 93
                    2019-02-08 21:59:49.284  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 92
                    2019-02-08 21:59:49.284  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 91
                    2019-02-08 21:59:49.284  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 90
                    2019-02-08 21:59:49.284  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 89
                    2019-02-08 21:59:49.284  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 88
                    2019-02-08 21:59:49.284  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 93
                    2019-02-08 21:59:49.285  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 92
                    2019-02-08 21:59:49.285  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 91
                    2019-02-08 21:59:49.285  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 90
                    2019-02-08 21:59:49.285  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 89
                    2019-02-08 21:59:49.285  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 88
                    2019-02-08 21:59:49.286  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 93
                    2019-02-08 21:59:49.287  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 92
                    2019-02-08 21:59:49.287  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 91
                    2019-02-08 21:59:49.287  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 90
                    2019-02-08 21:59:49.287  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 93
                    2019-02-08 21:59:49.287  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 92
                    2019-02-08 21:59:49.287  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 91
                    2019-02-08 21:59:49.287  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 90
                    2019-02-08 21:59:49.287  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 89
                    2019-02-08 21:59:49.288  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 88
                    2019-02-08 21:59:49.288  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 93
                    2019-02-08 21:59:49.294  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549659589291,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549659589291}
                    2019-02-08 21:59:49.294  - [34mdebug[39m: mqtt.0 onStateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549659589291,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549659589291}
                    2019-02-08 21:59:49.306  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.statusRoomtemp: {"val":22.25,"ack":true,"ts":1549659589292,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549659589292}
                    2019-02-08 21:59:49.306  - [34mdebug[39m: mqtt.0 onStateChange mqtt.0.Kinderzimmer.Klimaanlage.statusRoomtemp: {"val":22.25,"ack":true,"ts":1549659589292,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549659589292}
                    2019-02-08 21:59:49.306  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549659589293,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549659589291}
                    2019-02-08 21:59:49.306  - [34mdebug[39m: mqtt.0 onStateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549659589293,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549659589291}
                    2019-02-08 21:59:49.306  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549659589293,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549659589291}
                    2019-02-08 21:59:49.306  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549659589293,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549659589291}
                    2019-02-08 21:59:49.306  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549659589294,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549659589291}
                    2019-02-08 21:59:49.329  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 92
                    2019-02-08 21:59:49.329  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 91
                    2019-02-08 21:59:49.331  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 90
                    2019-02-08 21:59:49.331  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 89
                    2019-02-08 21:59:49.331  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 88
                    2019-02-08 21:59:49.331  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 93
                    2019-02-08 21:59:49.331  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 92
                    2019-02-08 21:59:49.331  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 91
                    2019-02-08 21:59:49.331  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 90
                    2019-02-08 21:59:49.331  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 89
                    2019-02-08 21:59:49.331  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 88
                    2019-02-08 21:59:49.331  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 93
                    2019-02-08 21:59:49.332  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 92
                    2019-02-08 21:59:49.332  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 91
                    2019-02-08 21:59:49.332  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 90
                    2019-02-08 21:59:49.332  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 89
                    2019-02-08 21:59:49.332  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 88
                    2019-02-08 21:59:49.332  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received puback for unknown message ID: 93
                    2019-02-08 21:59:49.333  - [33mwarn[39m: mqtt.0 Client [MHI Kinderzimmer] Received pubcomp for unknown message ID: 28527
                    2019-02-08 21:59:49.336  - [31merror[39m: mqtt.0 uncaught exception: Cannot read property 'topic' of undefined
                    2019-02-08 21:59:49.336  - [31merror[39m: mqtt.0 TypeError: Cannot read property 'topic' of undefined
                        at receivedTopic (/opt/iobroker/node_modules/iobroker.mqtt/lib/server.js:406:32)
                        at Connection.client.on.packet (/opt/iobroker/node_modules/iobroker.mqtt/lib/server.js:820:21)
                        at emitOne (events.js:116:13)
                        at Connection.emit (events.js:211:7)
                        at Connection.emitPacket (/opt/iobroker/node_modules/iobroker.mqtt/node_modules/mqtt-connection/connection.js:10:8)
                        at emitOne (events.js:116:13)
                        at Connection.emit (events.js:211:7)
                        at addChunk (/opt/iobroker/node_modules/iobroker.mqtt/node_modules/readable-stream/lib/_stream_readable.js:291:12)
                        at readableAddChunk (/opt/iobroker/node_modules/iobroker.mqtt/node_modules/readable-stream/lib/_stream_readable.js:278:11)
                        at Connection.Readable.push (/opt/iobroker/node_modules/iobroker.mqtt/node_modules/readable-stream/lib/_stream_readable.js:245:10)
                    2019-02-08 21:59:49.338  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549659589329,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549659589291}
                    2019-02-08 21:59:49.339  - [34mdebug[39m: mqtt.0 onStateChange mqtt.0.Kinderzimmer.Klimaanlage.debug: {"val":" << Unknown service command >>","ack":true,"ts":1549659589329,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549659589291}
                    2019-02-08 21:59:49.344  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.statusRoomtemp: {"val":22.5,"ack":true,"ts":1549659589340,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549659589340}
                    2019-02-08 21:59:49.344  - [34mdebug[39m: mqtt.0 onStateChange mqtt.0.Kinderzimmer.Klimaanlage.statusRoomtemp: {"val":22.5,"ack":true,"ts":1549659589340,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549659589340}
                    2019-02-08 21:59:49.354  - [34mdebug[39m: mqtt.0 Create object for topic: Kinderzimmer/Klimaanlage/d1.[/code]`
                    
                    So sah es aus, bevor er mit dem payload null (was auch immer das heißt angefangen hat.
                    
                    `~~[code]~~2019-02-08 19:48:03.022  - [34mdebug[39m: mqtt.0 Client [MHI Wintergarten]  pingreq
                    2019-02-08 19:48:05.484  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Wintergarten.Klimaanlage.statusRoomtemp: {"val":20.5,"ack":true,"ts":1549651685483,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549651685483}
                    2019-02-08 19:48:05.484  - [34mdebug[39m: mqtt.0 onStateChange mqtt.0.Wintergarten.Klimaanlage.statusRoomtemp: {"val":20.5,"ack":true,"ts":1549651685483,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549651685483}
                    2019-02-08 19:48:11.150  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Wintergarten.Klimaanlage.statusRoomtemp: {"val":20.25,"ack":true,"ts":1549651691148,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549651691148}
                    2019-02-08 19:48:11.150  - [34mdebug[39m: mqtt.0 onStateChange mqtt.0.Wintergarten.Klimaanlage.statusRoomtemp: {"val":20.25,"ack":true,"ts":1549651691148,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549651691148}
                    2019-02-08 19:48:12.376  - [34mdebug[39m: mqtt.0 Client [MHI Kinderzimmer]  pingreq
                    2019-02-08 19:48:18.027  - [34mdebug[39m: mqtt.0 Client [MHI Wintergarten]  pingreq
                    2019-02-08 19:48:22.468  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Wintergarten.Klimaanlage.statusRoomtemp: {"val":20,"ack":true,"ts":1549651702467,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549651702467}
                    2019-02-08 19:48:22.468  - [34mdebug[39m: mqtt.0 onStateChange mqtt.0.Wintergarten.Klimaanlage.statusRoomtemp: {"val":20,"ack":true,"ts":1549651702467,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549651702467}
                    2019-02-08 19:48:25.019  - [34mdebug[39m: mqtt.0 stateChange mqtt.0.Kinderzimmer.Klimaanlage.statusRoomtemp: {"val":22.75,"ack":true,"ts":1549651705018,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549651705018}
                    2019-02-08 19:48:25.019  - [34mdebug[39m: mqtt.0 onStateChange mqtt.0.Kinderzimmer.Klimaanlage.statusRoomtemp: {"val":22.75,"ack":true,"ts":1549651705018,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1549651705018}
                    2019-02-08 19:48:27.413  - [34mdebug[39m: mqtt.0 Client [MHI Kinderzimmer]  pingreq[/code]`
                    
                    Jemand ne Idee wie ich hier weiter komme?
                    
                    1 Reply Last reply Reply Quote 0
                    • G
                      gutgut30 last edited by

                      Hast du die Nummer stabil zum Laufen gebracht? Also ich bekomme es nicht hin, habe ständig Geistereinträge im iobroker usw.

                      coyote 1 Reply Last reply Reply Quote 0
                      • coyote
                        coyote Most Active @gutgut30 last edited by

                        @gutgut30 meinst du jetzt allgemein mit MQTT oder das Klimaanlagen Projekt?
                        Ich nutze mittlerweile diese Version für die Klimaanlage: https://github.com/absalom-muc/MHI-AC-Ctrl
                        Da läuft alles einwandfrei.

                        G ThatsIT 2 Replies Last reply Reply Quote 0
                        • G
                          gutgut30 @coyote last edited by

                          @coyote Okay, wird auch mein nächster Step sein. Klingt auf jeden Fall stabiler 🙂

                          coyote 1 Reply Last reply Reply Quote 0
                          • coyote
                            coyote Most Active @gutgut30 last edited by

                            @gutgut30 genau, läuft bei mir jetzt so weit Anfang des Jahres und hatte bisher keinerlei Abbrüche oder Geisterdatenpunkte.
                            Aber ich muss dann auch erst Mal den Sommer abwarten, wenn die Geräte richtig in Betrieb sind.

                            1 Reply Last reply Reply Quote 0
                            • ThatsIT
                              ThatsIT @coyote last edited by

                              @coyote Hallo, ich steuere mit ioBroker meine Homematic IP Geräte und Google minis. Nun würde ich gerne auch meine MHI, die ich über ein Wi-Fi-Modul von AirConWithMe.com / IntesisHome.com eingebunden habe, steuern können. Anscheinend geht das nur mit MQTT. Damit habe ich aber überhaupt keine Erfahrung. Könntest du mir sagen, wie du dein Klimaanlagen Projekt umgesetzt hast? Wie bekomme ich die MHI mit MQTT verbunden?

                              coyote 1 Reply Last reply Reply Quote 0
                              • coyote
                                coyote Most Active @ThatsIT last edited by

                                @ThatsIT ich habe ja das Projekt aus dem obigen GitHub Link umgesetzt. Da wird die MQTT Verbindung über das arduino Programm hergestellt. Wie das mit deinen WiFi Modul funktioniert, weiß ich leider nicht.

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate
                                FAQ Cloud / IOT
                                HowTo: Node.js-Update
                                HowTo: Backup/Restore
                                Downloads
                                BLOG

                                897
                                Online

                                31.9k
                                Users

                                80.2k
                                Topics

                                1.3m
                                Posts

                                4
                                18
                                2094
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo