This is a dogs education collar with a 433MHz radio (some collars on Ebay list the Frequency).
I managed to decode the collar protocol and wrote a little C# code to generate Pilight pulsetrains.
These can be used with ESP8266 or RaspberryPi and a 433Mhz Transmitter.
So you can build your own collar transmitter.
Here is the RAW form from RTL_433 of „Channel 2 Vibration Level 1“: Analyzer
C# Code:
/*
f Chanel 0 (ALL)
e Chanel 1
d Chanel 2
c Chanel 3
7de Vibration Level 1
4dd Vibration Level 2
5dc Vibration Level 3
2db Vibration Level 4
3da Vibration Level 5
0d9 Vibration Level 6
1d8 Vibration Level 7
ed7 Vibration Level 8
fd6 Vibration Level 9
4ee Shock Level 1
7ed Shock Level 2
6ec Shock Level 3
1eb Shock Level 4
0ea Shock Level 5
3e9 Shock Level 6
2e8 Shock Level 7
de7 Shock Level 8
ce6 Shock Level 9
7cf BEEP
5ba PLAY1
ab5 PLAY2
d6efef END
rtl_433 -X "n=generic_remote_01,m=OOK_PWM,s=500,l=1000,r=5000,g=1000,match=d6efef,bits=41"
PWM Short: 500us, Long: 1000us, Sync:5000us, Gap: 1000us
Vibration Level 1 Channel 2:
https://triq.org/pdv/#AAB0370601002C00F801F003EC136C27B4A3A3B2A3B2A3A3A3A3A3B2A3A3A3A3B2A3A3B2A3B2A3A3B2A3A3A3B2A3A3A3A3A3A3A3B2A3A3A3A3B555
*/
class Program
{
static void Main(string[] args)
{
string[] channel = new string[] { "f", "e", "d", "c" };
string[] vibrationLevel = new string[] { "7de", "4dd", "5dc", "2db", "3da", "0d9", "1d8", "ed7", "fd6"};
string[] shockLevel = new string[] { "4ee", "7ed", "6ec", "1eb", "0ea", "3e9", "2e8", "de7", "ce6" };
string beepString = "7cf";
string play1String = "5ba";
string play2String = "ab5";
string endString = "d6efef";
string hexstring = channel[0] + vibrationLevel[0] + endString; //here you can setup your RF Code
Console.WriteLine("Hexstring:");
Console.WriteLine(hexstring);
string binarystring = String.Join(String.Empty,
hexstring.Select(
c => Convert.ToString(Convert.ToInt32(c.ToString(), 16), 2).PadLeft(4, '0')
)
);
Console.WriteLine("\nBinarystring:");
Console.WriteLine(binarystring);
string pulsetrain = "c:32";
string raw = "5000 ";
foreach (char c in binarystring) {
if (c == '1')
{
raw += "500 1000 ";
pulsetrain += "01";
}
if (c == '0')
{
raw += "1000 500 ";
pulsetrain += "10";
}
}
raw += "1000";
pulsetrain += "1;p:500,1000,5000,0@";
Console.WriteLine("\nRaw:");
Console.WriteLine(raw);
Console.WriteLine("\nPilight pulsetrain:");
Console.WriteLine(pulsetrain);
}
}