Pet Feeder Entities

Does your voice control work? Mine stopped after sometime and never returned. :frowning:

I tryed to change jast now, it work

1 Like

I’ve been trying to get my Petlibro Wifi and Camera feeders into HA and finally made progress. I wanted to post a dump of the DP codes here for the next person

Note the PLAF203 dp code for manual_feed is 232, PLAF103 is 3. Those are the probably the main ones you want :slight_smile:

If anyone knows which other codes are which I can cleanup and edit the text file to be easier to read :+1:

1 Like

I know this is a bit of a bump but I’d just like to add.

I have the feeder without camera. Tried various things with the codes and I discovered 14 on mine was the food level sensor. I originally thought it was a light, as there is a night light on the device but later realised it referenced the light indicating the food was empty. It returns 0 if it is not empty, and 1 if it is empty. I tried to add this as a binary sensor in localtuya but it didn’t work, so instead I have added it as a sensor and then used an additional template sensor:

{{ is_state('sensor.14_food','1') }}

1 Like

Can you please share your node red?

2 Likes

i added more info in wiki for HoneyGuardian

1 Like

Getting this error when trying to import.

Also, does your meal plan entity become unavailable after device restart? Mine becomes unavailable, and I have to go to the Tuya app to make any change to the meal plan in the app, before it pops back up in the HASS.

i reloaded now… please,try angain.
i tryed also to import, it work.
another point. use my honeyguaridan_pet_feeder_s56.yaml.
After the last tuja local update i don’t know the why configuration in tuja local doesn’t work

Hey, just got this exact pet feeder. How did you manage to integrate it in HA? I chose it specifically because I saw you mentioned you made it work.

this is what I see for the pet feeder I just purchased. any chance anyone knows how to integrate with local tuya

Add the feeder to the LocalTuya integration

I don’t know what config to choose to get the entities to work properly with local tuya

See the history of this thread. Numerous examples to set you on the right track.

Does your Last Feed get updated?
Mine only updates if I manually feed. If I setup a schedule, after auto feed, the Last Feed portion doesn’t update.

How to create sensor integer for the meal plan that will accept values as for base64 format?

Hi, i have one of those Honeyguardian S30D but unfortunately my localTuya cannot discover the device… was there maybe some change in the past or am i missing a step? (first local tuya device…)
grafik

bump. please see if you could assist.

I’m also very confused on how to add it to LocalTuya. From the topic I was able to get all the ids for the Talo Smart Pet Feeder and translate them from chinese:

101 : timer_feed : Deliver Food Regulary (min 0 max 12) : value
102 : fault : 1 pet food low - 2 pet food empty - 4 pet food stuck : bitmap 
103 : feeding : control manual button : bool 
104 : express_feed : immediate grain delivery (min 0 max 12) : value 
105 : manual_amount : number of grain portion (min 0 max 12) : value 
106 : manual_feed : when button pressed grain discharge result (min 0 max 12) : value 
107 : express_result : fast food delivery (min 0 max 12) : value 
108 : timer_result : regular grain delivery (min 0 max 12) : value 
109 : history_data : historical data in 4 bytes, highest byte represents error (1 no food, 2 insufficient food, 3 food blocked) , next highest byte is 100. Bit indicates type of grain delivery (1 manual, 0 automatic) , third byte is amount, last byte is report id increased by 1 each time : min 0 max 2147483646 : value 
110 : weight : number of grains producced by button (min 1 max 255) : value 
111 : voiceswitch : beep disable/enable : bool 

When adding the id’s to localtuya I choose switch for example, I can add 101 to that and each time I toggle it off and on the dispenser will rotate a mini amount. I don’t understand how to add other id’s as amounts or single press buttons instead of switches that ask me for voltage etc…

Full Log with translated sentences after ;;;

[
  {
    "abilityId": 101,
    "accessMode": "rw",
    "code": "timer_feed",
    "description": "定时出粮",              ;;;Deliver food regularly
    "extensions": {
      "trigger": "direct"
    },
    "name": "定时出粮",                   ;;;Deliver food regularly
    "typeSpec": {
      "type": "value",
      "max": 12,
      "min": 0,
      "scale": 0,
      "step": 1,
      "unit": "份"                      ;;;Share
    }
  },
  {
    "abilityId": 102,
    "accessMode": "ro",
    "code": "fault",
    "description": "1=宠粮不足、2=宠粮用尽、4=宠粮堵塞",         ;1=Insufficient pet food, 2=Exhausted pet food, 4=Clogged pet food
    "extensions": {   
      "scope": "fault"
    },
    "name": "粮桶状态",           ;;;Grain barrel status
    "typeSpec": {
      "type": "bitmap",
      "label": [
        "1",
        "2",
        "3"
      ],
      "maxlen": 3
    }
  },
  {
    "abilityId": 103,
    "accessMode": "rw",       ;;;Used to control the manual grain discharging switch button on the equipment. If you turn on this switch, you can dispense grain through the grain discharging button of the equipment. If you turn off this function, the grain discharging button on the equipment will not take effect.
    "code": "feeding",
    "description": "用来控制设备上的手动出粮开关按键,打开此开关,则可以通过设备的出粮按键出粮,若关闭此功能,则设备上的出粮按键不会生效",
    "name": "手动出粮",
    "typeSpec": {
      "type": "bool"
    }
  },
  {
    "abilityId": 104,
    "accessMode": "rw",
    "code": "express_feed",
    "description": "立即出粮按钮功能",      ;;Immediate grain delivery button function
    "extensions": {
      "trigger": "direct"
    },
    "name": "快速出粮",               ;;;Fast food delivery
    "typeSpec": {
      "type": "value",
      "max": 12,
      "min": 0,
      "scale": 0,
      "step": 1,
      "unit": ""
    }
  },
  {
    "abilityId": 105,
    "accessMode": "rw",
    "code": "Manual_amount",
    "description": "",
    "name": "出粮份数",              ;;;;;;Number of grain portions
    "typeSpec": {
      "type": "value",
      "max": 12,
      "min": 1,
      "scale": 0,
      "step": 1,
      "unit": ""
    }
  },
  {
    "abilityId": 106,
    "accessMode": "ro",          ;;;When the button is pressed to manually disburse grain, the grain discharging result will be reported after the grain dispensing is completed.
    "code": "manual_feed",
    "description": "当按键手动出粮的时候,出粮完成上报出粮结果",
    "extensions": {
      "trigger": "direct"
    },
    "name": "手动出粮",           ;;;Manual grain dispensing
    "typeSpec": {
      "type": "value",
      "max": 12,
      "min": 0,
      "scale": 0,
      "step": 1,
      "unit": ""
    }
  },
  {
    "abilityId": 107,
    "accessMode": "ro",
    "code": "express_result",
    "description": "快速出粮的结果",       ;;;;Fast food results
    "extensions": {
      "trigger": "direct"
    },
    "name": "快速出粮",              ;;;;Fast food delivery
    "typeSpec": {
      "type": "value",
      "max": 12,
      "min": 0,
      "scale": 0,
      "step": 1,
      "unit": ""
    }
  },
  {
    "abilityId": 108,
    "accessMode": "ro",
    "code": "timer_result",
    "description": "定时出粮结果",          ;;;Regular grain results
    "extensions": {
      "trigger": "direct"
    },
    "name": "定时出粮",                 ;;;Deliver food regularly
    "typeSpec": {
      "type": "value",
      "max": 12,
      "min": 0,
      "scale": 0,
      "step": 1,
      "unit": ""
    }
  },
  {
    "abilityId": 109,
    "accessMode": "ro",   ;;;After the device completes execution, it reports historical data. When reporting historical data, the value is composed of 4 bytes. The highest byte represents the error code (1: No food, 2: Insufficient food, 3: Food is blocked); the next highest byte is 100. The bit indicates the type of grain delivery (2: Alex 1: Manual 0: Automatic); the third byte indicates the actual number of grain delivery portions; the last byte indicates the reporting ID, which is increased by 1 after each report.
    "code": "history_data",
    "description": "设备执行完成后上报历史数据,上报历史数据时,value由4个字节拼接而成,最高位字节表示错误码(1:无粮  2:食物不足   3:粮食堵塞);次高位字节百位表示出粮类型(2:Alex  1:手动   0:自动);第三字节表示实际出粮份数;最后一字节表示上报ID,每次上报后加1。nresult = ((uint32)devState.errType<<24|(uint32)foodCount<<16|(uint32)rebackCount<<8|(uint32)sendID);n",
    "name": "上报历史数据",  ;;;;Report historical data
    "typeSpec": {
      "type": "value",
      "max": 2147483646,
      "min": 0,
      "scale": 0,
      "step": 1,
      "unit": ""
    }
  },
  {
    "abilityId": 110,
    "accessMode": "rw",    ;;;Control the number of grains produced by the button. The hundred's digit indicates enable, and the last two digits indicate the number of grains to be distributed (110 indicates that grain distribution is allowed, and 10 grains will be produced by pressing the button)
    "code": "weight",
    "description": "控制按钮的出粮份数。百位表示enable,后面两位表示出粮份数(110表示允许出粮,按键出粮10份)",
    "name": "Manual feeding",
    "typeSpec": {
      "type": "value",
      "max": 255,
      "min": 1,
      "scale": 0,
      "step": 1,
      "unit": ""
    }
  },
  {
    "abilityId": 111,
    "accessMode": "rw",
    "code": "VoiceSwitch",
    "description": "出粮音开关",     ;;;Grain dispensing sound switch
    "name": "声音开关",      ;;;;sound switch
    "typeSpec": {
      "type": "bool"
    }
  }
]

If anyone could just send me in the right direction plz.

Adding a chorus about the pet feed entities train, I bought this one (https://www.amazon.es/dp/B0CNVCBLHS?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1) and this is my entities:

      "dps_strings": [
        "103 ( code: basic_flip , value: False )",
        "106 ( code: motion_sensitivity , value: 1 )",
        "108 ( code: basic_nightvision , value: 0 )",
        "109 ( code: sd_storge , value: 896|896|0 )",
        "110 ( code: sd_status , value: 5 )",
        "111 ( code: sd_format , value: False, cloud pull )",
        "117 ( code: sd_format_state , value: 0 )",
        "134 ( code: motion_switch , value: False )",
        "150 ( code: record_switch , value: True )",
        "151 ( code: record_mode , value: 1 )",
        "231 ( code: feed_publish , value: 1, cloud pull )",
        "232 ( code: food_weight , value: 10 )",
        "233 ( code: realtime_data , value: 0, cloud pull )",
        "234 ( code: history_data , value: False, cloud pull )",
        "235 ( code: feed_voice_record , value: 0 )",
        "236 ( code: schedule , value: 7f11300310000007f2000031000000 )",
        "238 ( code: feed_report , value: 1 )"
      ]
    },

The biggest issue is that my pet feeder show as "model": "Security Camera" in Tuya original integration, localtuya and xtended tuya
all of integrations do not work as pet feeder.

And like @rizzah I have no idea how to point them and which mode (sensor, binary sensor, switch) to choose on the list.

Opened bugs in both places (xtended tuya and localtuya) to try to have this correct working.