Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Controllers
  3. Home Assistant
  4. Not Valid message sub-type error

Not Valid message sub-type error

Scheduled Pinned Locked Moved Home Assistant
3 Posts 1 Posters 44 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • sfozzS Offline
    sfozzS Offline
    sfozz
    wrote on last edited by
    #1

    Hi folks,

    Just resurrected my home assistant setup after a hiatus (previous install was early HA from 2021), I had my heatpump working before. But with the newer version of HA I'm getting the following logged.

    2022-07-12 09:54:18 DEBUG (MainThread) [mysensors.gateway_mqtt] Receiving 250;255;0;0;17;2.3.2                   
    2022-07-12 09:54:18 DEBUG (MainThread) [homeassistant.components.mysensors.gateway] Node update: node 250 child 255                                                                                                                            
    2022-07-12 09:54:18 DEBUG (MainThread) [mysensors.gateway_mqtt] Receiving 250;255;0;0;17;2.3.2                                                                                                                                                 
    2022-07-12 09:54:18 DEBUG (MainThread) [homeassistant.components.mysensors.gateway] Node update: node 250 child 255
    2022-07-12 09:54:18 DEBUG (MainThread) [mysensors.gateway_mqtt] Receiving 250;255;3;0;6;0
    2022-07-12 09:54:18 DEBUG (MainThread) [mysensors.gateway_mqtt] Publishing 250;255;3;0;6;M                       
    2022-07-12 09:54:19 DEBUG (SyncWorker_5) [mysensors.persistence] Saving sensors to persistence file /config/mysensors_9efc8d723297a2c52c4ecf34999e35c7.json
    2022-07-12 09:54:19 DEBUG (MainThread) [mysensors.gateway_mqtt] Receiving 250;255;3;0;11;Heatpump Control                                                                                                                                      
    2022-07-12 09:54:19 DEBUG (MainThread) [homeassistant.components.mysensors.gateway] Node update: node 250 child 255
    2022-07-12 09:54:20 DEBUG (MainThread) [mysensors.gateway_mqtt] Receiving 250;255;3;0;12;1.4                     
    2022-07-12 09:54:20 DEBUG (MainThread) [homeassistant.components.mysensors.gateway] Node update: node 250 child 255                                                                                                                            
    2022-07-12 09:54:20 DEBUG (MainThread) [mysensors.gateway_mqtt] Receiving 250;255;3;0;12;1.4                                                                                                                                                   
    2022-07-12 09:54:20 DEBUG (MainThread) [homeassistant.components.mysensors.gateway] Node update: node 250 child 255
    2022-07-12 09:54:21 DEBUG (MainThread) [mysensors.gateway_mqtt] Receiving 250;0;0;0;3;Power                      
    2022-07-12 09:54:21 DEBUG (MainThread) [homeassistant.components.mysensors.gateway] Node update: node 250 child 0                                                                                                                              
    2022-07-12 09:54:21 DEBUG (MainThread) [mysensors.gateway_mqtt] Subscribing to: mygateway1-out/250/0/1/+/+, qos: 0                                                                                                                             
    2022-07-12 09:54:21 DEBUG (MainThread) [mysensors.gateway_mqtt] Subscribing to: mygateway1-out/250/0/2/+/+, qos: 0
    2022-07-12 09:54:21 DEBUG (MainThread) [mysensors.gateway_mqtt] Subscribing to: mygateway1-out/250/+/4/+/+, qos: 0
    2022-07-12 09:54:21 DEBUG (MainThread) [mysensors.gateway_mqtt] Receiving 250;0;0;0;3;Power                                                                                                                                                    
    2022-07-12 09:54:21 WARNING (MainThread) [mysensors.sensor] child_id 0 already exists in children of node 250, cannot add child                            
    2022-07-12 09:54:22 DEBUG (MainThread) [mysensors.gateway_mqtt] Receiving 250;1;0;0;29;HVAC
    2022-07-12 09:54:22 WARNING (MainThread) [mysensors] Invalid <Message data="250;1;0;0;29;HVAC">: Not valid message sub-type: 29 for object value @ data['sub_type']. Got 29
    not a valid value for object value @ data['payload']. Got 'HVAC'                                                                                                                                                                               
    2022-07-12 09:54:22 DEBUG (MainThread) [mysensors.gateway_mqtt] Receiving 250;1;0;0;29;HVAC                                                                                                                                                    
    2022-07-12 09:54:22 WARNING (MainThread) [mysensors] Invalid <Message data="250;1;0;0;29;HVAC">: Not valid message sub-type: 29 for object value @ data['sub_type']. Got 29
    not a valid value for object value @ data['payload']. Got 'HVAC'                                                 
    2022-07-12 09:54:22 DEBUG (MainThread) [mysensors.gateway_mqtt] Receiving 250;5;0;0;36;Vane Dir                                                                                                                                                
    2022-07-12 09:54:22 WARNING (MainThread) [mysensors] Invalid <Message data="250;5;0;0;36;Vane Dir">: Not valid message sub-type: 36 for object value @ data['sub_type']. Got 36
    not a valid value for object value @ data['payload']. Got 'Vane Dir'                   
    2022-07-12 09:54:22 DEBUG (MainThread) [mysensors.gateway_mqtt] Receiving 250;6;0;0;36;Operating                 
    2022-07-12 09:54:22 WARNING (MainThread) [mysensors] Invalid <Message data="250;6;0;0;36;Operating">: Not valid message sub-type: 36 for object value @ data['sub_type']. Got 36
    not a valid value for object value @ data['payload']. Got 'Operating' 
    022-07-12 09:54:29 DEBUG (SyncWorker_5) [mysensors.persistence] Saving sensors to persistence file /config/mysensors_9efc8d723297a2c52c4ecf34999e35c7.json
    2022-07-12 09:54:29 DEBUG (MainThread) [mysensors.gateway_mqtt] Receiving 250;0;1;0;2;1                          
    2022-07-12 09:54:29 DEBUG (MainThread) [homeassistant.components.mysensors.gateway] Node update: node 250 child 0                                                                                                                              
    2022-07-12 09:54:29 DEBUG (MainThread) [homeassistant.components.mysensors.helpers] Discovering platform switch with devIds: [('9efc8d723297a2c52c4ecf34999e35c7', 250, 0, 2)]
    2022-07-12 09:54:29 INFO (MainThread) [homeassistant.components.mysensors] Adding new devices: [<Entity Power: off>]
    2022-07-12 09:54:29 DEBUG (MainThread) [homeassistant.components.mysensors.device] Entity update: Power: value_type 2, value = 1                                          
    2022-07-12 09:54:29 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new switch.mysensors entity: switch.power
    2022-07-12 09:54:39 DEBUG (SyncWorker_6) [mysensors.persistence] Saving sensors to persistence file /config/mysensors_9efc8d723297a2c52c4ecf34999e35c7.json                                                                                               
    

    I'm guessing my presentation is wonky, attached is my sketch
    [0_1657580859486_ard_hvac.ino](Uploading 100%)

    1 Reply Last reply
    0
    • sfozzS Offline
      sfozzS Offline
      sfozz
      wrote on last edited by
      #2
      // -*- mode: c -*-
      
      #include "HeatPump.h"
      
      HeatPump hp;
      
      #define MY_NODE_ID 250
      
      // Enable and select radio type attached 
      #define MY_RADIO_RFM69
      #define MY_RFM69_NEW_DRIVER
      #define MY_RFM69_FREQUENCY (RFM69_433MHZ)
      #define MY_IS_RFM69HW 1
      
      #define MY_RFM69_IRQ_PIN 3
      
      #include <MySensors.h>
      
      #define CHILD_POWER 0
      #define CHILD_HVAC  1
      #define CHILD_VANE  5
      #define CHILD_STAT  6
      
      bool metric = true;
      
      unsigned long lastTempSend;
      const unsigned long SEND_ROOM_TEMP_INTERVAL_MS = 120000;
      
      // Power  [ON,OFF]
      MyMessage msgPower(CHILD_POWER, V_STATUS);
      // Temp set point
      MyMessage msgSTemp(CHILD_HVAC, V_HVAC_SETPOINT_HEAT);
      // Room Temp
      MyMessage msgRTemp(CHILD_HVAC, V_TEMP);
      // Fan Speed [QUIET,2,4,AUTO]
      // my sensors -> HA ("Min", "Normal", "Max", "Auto")
      MyMessage msgFanSp(CHILD_HVAC, V_HVAC_SPEED);
      // Mode [Heat,Dry,Cool,Auto,?IDLE?]
      // mysensors -> HA "Off", "HeatOn", "CoolOn", or "AutoChangeOver"
      MyMessage msgMode(CHILD_HVAC, V_HVAC_FLOW_STATE);
      // Vane Direction [AUTO,1,2,3,4,5,SWING]
      // mysensors -> HA ????
      MyMessage msgVane(CHILD_VANE, V_VAR1);
      // Operating [YES, NO]
      // mysensors -> HA TEXT
      MyMessage msgStat(CHILD_STAT, V_TEXT);
      
      const char* fanHA2HP(const char* val) {
        if (strcmp(val,"Min") == 0) return "QUIET";
        if (strcmp(val,"Normal") == 0) return "2";
        if (strcmp(val,"Max") == 0) return "4";
        if (strcmp(val,"Auto") == 0) return "AUTO";
        return "2";
      }
      
      const char* fanHP2HA(const char* val) {
        if (strcmp(val,"QUIET") == 0) return "Min";
        if ((strcmp(val,"1") == 0) || (strcmp(val,"2") == 0)) return "Normal";
        if ((strcmp(val,"3") == 0) || (strcmp(val,"4") == 0)) return "Max";
        if (strcmp(val,"AUTO") == 0) return "Auto";
        return "Normal";
      }
      
      const char* modeHA2HP(const char* val) {
        const char* mode;
        if (strcmp(val,"HeatOn") == 0) mode = "HEAT";
        if (strcmp(val,"CoolOn") == 0) mode = "COOL";
        if (strcmp(val,"AutoChangeOver") == 0) mode = "AUTO";
        return mode;
      }
      
      const char* modeHP2HA(const char* val) {
        if (strcmp(val,"HEAT") == 0) return "HeatOn";
        if (strcmp(val,"COOL") == 0) return "CoolOn";
        if (strcmp(val,"AUTO") == 0) return "AutoChangeOver";
        return "HeatOn";
      }
      
      void publish(heatpumpSettings currentSettings) {
        bool power = hp.getPowerSettingBool();
        send(msgPower.set(power));
        send(msgSTemp.set((int)currentSettings.temperature));
        send(msgFanSp.set(fanHP2HA(currentSettings.fan)));
        send(msgMode.set(power ? modeHP2HA(currentSettings.mode) : "Off"));
        send(msgVane.set(currentSettings.vane));
      }
      
      void publish(heatpumpStatus currentStatus) {
        send(msgRTemp.set((int)currentStatus.roomTemperature));
        send(msgStat.set(currentStatus.operating ? "YES" : "NO"));
      }
      
      void hpSettingsChanged() {
        heatpumpSettings currentSettings = hp.getSettings();
        publish(currentSettings);
      }
      
      void hpStatusChanged(heatpumpStatus currentStatus) {
        publish(currentStatus);
      }
      
      void setup() {
        lastTempSend = millis();
      
        // Create the callbacks
        hp.setSettingsChangedCallback(hpSettingsChanged);
        hp.setStatusChangedCallback(hpStatusChanged);
        
        hp.connect(&Serial); // connect to the heatpump
        hp.sync(); // Update settings
      }
      
      void before() {
        // Reset the board to activate the radio
        pinMode(9, OUTPUT);
        digitalWrite(9, LOW);
        digitalWrite(9, HIGH);
        delay(10);
        digitalWrite(9, LOW);
        delay(10);
      }
      
      void presentation() {
        sendSketchInfo("Heatpump Control", "1.4");
        present(CHILD_POWER, S_BINARY, "Power");
        present(CHILD_HVAC, S_HVAC, "HVAC");
        present(CHILD_VANE, S_INFO, "Vane Dir");
        present(CHILD_STAT, S_INFO, "Operating");
      }
      
      void receive(const MyMessage &msg) {
        switch(msg.sensor) {
        case CHILD_HVAC:
          switch(msg.type) {
          case V_HVAC_FLOW_STATE: {
            const char* data = msg.getString();
            bool power;
            if (strcmp(data,"Off") == 0) {
      	power = false;
              hp.setPowerSetting(power);
            } else {
      	power = true;
              hp.setModeSetting(modeHA2HP(data));
              hp.setPowerSetting(power);
            }
            break;
          }
          case V_HVAC_SETPOINT_HEAT: {
            hp.setTemperature(msg.getInt());
            break;
          }
          case V_HVAC_SPEED: {
            hp.setFanSpeed(fanHA2HP(msg.getString()));
            break;
          }
          }
          break;
        case CHILD_VANE:
          hp.setVaneSetting(msg.getString());
          break;
        case CHILD_POWER: // ON or OFF
          hp.setPowerSetting(msg.getBool());
          break;
        default : // do nothing!
          break;
        }
        hp.update();
        hpStatusChanged(hp.getStatus());
      }
      
      void loop() {
        hp.sync();
      
        if (millis() > (lastTempSend + SEND_ROOM_TEMP_INTERVAL_MS)) {
          // only send the temperature every 60s
          hpStatusChanged(hp.getStatus());
          hpSettingsChanged();
          lastTempSend = millis();
        }
      
        wait(1000);
      }
      
      
      
      1 Reply Last reply
      0
      • sfozzS Offline
        sfozzS Offline
        sfozz
        wrote on last edited by
        #3

        Ignore me... the mysensors API version was set to 1.4 :face_palm:

        1 Reply Last reply
        1
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        13

        Online

        11.7k

        Users

        11.2k

        Topics

        113.1k

        Posts


        Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • MySensors
        • OpenHardware.io
        • Categories
        • Recent
        • Tags
        • Popular