Navigation

    • Register
    • Login
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular
    1. Home
    2. Willie-wortel
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Willie-wortel

    @Willie-wortel

    0
    Reputation
    2
    Posts
    1
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    Willie-wortel Follow

    Best posts made by Willie-wortel

    This user hasn't posted anything yet.

    Latest posts made by Willie-wortel

    • MySensors (HA) having multiple gateways with local sensors

      I would like to have multiple MySensors gateways with local sensors attached. Some will be connected via Serial, other via TCP. In Home assistant, they got mixed up for some reason.

      8c6d30a0-9570-4f56-97bc-59f6ed5815c0-image.png

      The issue is that I can see sensors from the "Doorbell" gateway (serial) inside my FanX gateway (serial). What can be wrong here?

      posted in Troubleshooting
      Willie-wortel
      Willie-wortel
    • Home Assistant HVAC Serial gateway (fan speed)

      Hi there,

      Can someone confirm that a setup with Serial Gateway using local connected HVAC sensor should work in Home Assistant? Especially in regards to the V_HVAC_SPEED variable?

      Also, I'm using an Arduino micro (Atmega32u4) to test this. Sometimes I see that a heater entity is added, but it does not support V_HVAC_SPEED variable, only the HVAC state.

      It seems the same problem as described here: link!

      The code I'm using:

      // Enable serial gateway
      #define MY_GATEWAY_SERIAL
      #define MY_BAUD_RATE 38400
      
      #include <MySensors.h>
      #define CHILD_ID_HVAC 0
      
      #define SN "Test sketch"
      #define SV "2.3.2"
      
      MyMessage msgHVACSpeed(CHILD_ID_HVAC, V_HVAC_SPEED);
      MyMessage msgHVACSetPointC(CHILD_ID_HVAC, V_HVAC_SETPOINT_COOL);
      MyMessage msgHVACFlowState(CHILD_ID_HVAC, V_HVAC_FLOW_STATE);
      
      String  MODE_STATE_TXT;
      String  FAN_STATE_TXT;
      int     FAN_STATE;
      int     TEMP_STATE;
      bool    initialValueSent = false;
      
      void setup()
      {
        // Setup locally attached sensors
        //pinMode(LED_BUILTIN, OUTPUT);
      }
      
      void presentation()
      {
        // Present locally attached sensors
        sendSketchInfo(SN, SV);
        present(CHILD_ID_HVAC, S_HVAC, "Thermostat");  
      }
      
      void loop()
      {
        // Send locally attached sensor data here
        
        if (!initialValueSent) 
        {
          FAN_STATE_TXT = "Min";         // default fan start state
          TEMP_STATE = 20;               // default start temperature
          MODE_STATE_TXT = "CoolOn";     // default mode state
      
          send(msgHVACSpeed.set(FAN_STATE_TXT.c_str()));
          send(msgHVACSetPointC.set(TEMP_STATE));
          send(msgHVACFlowState.set(MODE_STATE_TXT.c_str()));
          
          initialValueSent = true;
        }
        
        //wait(1000);
       
      }
      
      void receive(const MyMessage &message) 
      {
        if (message.isAck()) 
        {
           //Serial.println("This is an ack from gateway");
           return;
        }
      
        //Serial.print("Incoming message for: ");
        //Serial.print(message.sensor);
      
        String recvData = message.data;
        recvData.trim();
      
        //Serial.print(", New status: ");
        //Serial.println(recvData);
        switch (message.type) 
        {
          case V_HVAC_SPEED:
            //Serial.println("V_HVAC_SPEED");
      
            if(recvData.equalsIgnoreCase("auto")) FAN_STATE = 0;
            else if(recvData.equalsIgnoreCase("min")) FAN_STATE = 1;
            else if(recvData.equalsIgnoreCase("normal")) FAN_STATE = 2;
            else if(recvData.equalsIgnoreCase("max")) FAN_STATE = 3;
            FAN_STATE_TXT = recvData;
          break;
        }
        //sendHeatpumpCommand(); // apply setting!
        sendNewStateToGateway();
      }
      
      void sendNewStateToGateway() 
      {
        /*
        Serial.println("Status update send to HA:");
        Serial.println("*************************");
        Serial.println("Mode = " + MODE_STATE_TXT + "(" + (String)MODE_STATE + ")");
        Serial.println("Fan = " + FAN_STATE_TXT + "(" + (String)FAN_STATE + ")");
        Serial.println("Temp = " + (String)TEMP_STATE);
        */
        
        send(msgHVACSpeed.set(FAN_STATE_TXT.c_str()));
      
      }
      
      
      posted in Troubleshooting
      Willie-wortel
      Willie-wortel